System and method for indicating sections of electronic tax forms for which narrative explanations can be presented

ABSTRACT

Computer-implemented method, tax return preparation systems and computer program products for presenting an explanation for a tax calculation or operation performed by a tax return preparation system when the system is in “forms” mode. An electronic version of a tax authority form that has been modified by inclusion of interface elements is displayed to a user. In response to the user selecting an interface element while in forms mode, presentation of an explanation regarding a tax calculation or operation for the associated field is invoked. The user interface controller provides data in response to selection of the interface element to an explanation engine, which determines an explanation based at least in part upon the tax calculation graph. The explanation is provided to the user interface controller for presentation to the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/814,361, filed Jul. 30, 2015. This application is also related toU.S. application Ser. No. 14/530,159, filed Oct. 31, 2014, now U.S. Pat.No. 10,169,826, issued Jan. 1, 2019. The contents of each application isincorporated herein by reference in its entirety.

SUMMARY

Embodiments are related to generating explanations regarding data withinan electronic tax return during presentation of an electronic version ofa tax form, or in “forms mode” presentation mode of a multi-mode taxreturn preparation system. For example, presentation modes of suchsystems may include an “interview” mode involving interview screens ofor that are unique to a particular tax return preparation system,“forms” mode that involve an electronic version or rendering of a taxauthority form, and data mode, which involves a list or table of taxdata, such as a tax summary. Embodiments are also related to modifyingelectronic versions of tax forms. Embodiments are also related toindicating fields of an electronic version of a tax form for whichexplanations can be generated, and which fields for which explanationscannot be generated. Embodiments are also related to providingexplanations regarding numerical data as well as non-numerical data(e.g., data concerning whether a certain box is checked, or data of atable or chart. Embodiments are also related to how explanations areinitiated or requested, presented to a user. Embodiments are alsorelated to providing users with the capability to access and/or modifydata upon which an explanation is generated from within an explanationitself. Embodiments are further related to providing explanationcapabilities during preparation of an electronic tax return as well asthereafter (e.g., when an accountant prepares an electronic tax returnfor a taxpayer and provides the taxpayer with a copy of the electronictax return incorporating embodiments of the invention). Embodiments alsorelate to providing the ability to initiate an explanation from withinan electronic version of a tax form and independently of an electronictax return, e.g., as part of an electronic tax calculator involvingelectronic versions of tax forms and/or other electronic tax documents.

One embodiment involves a computer-implemented method for presenting anexplanation for a tax calculation or operation performed by a tax returnpreparation system operable in multiple presentation modes. A taxcalculation engine operates on a tax calculation graph to perform a taxcalculation. In the tax calculation graph, tax calculations oroperations are associated with respective explanations in the taxcalculation graph. The method further comprises a user interfacecontroller, while operating in forms mode of the multiple presentationmodes, presenting to the user an electronic version of a tax form of atax authority that has been modified by inclusion of interface elementsassociated with respective fields of the electronic version of the taxform and receiving, through the screen, user input regarding selectionof an interface element to invoke presentation of an explanationregarding a tax calculation or operation for the associated field. Inresponse to the user input, the user interface controller provides datain response to selection of the interface element to an explanationengine, which determines a narrative explanation based at least in partupon the tax calculation graph in response to data received from theuser interface controller and providing the narrative explanation to theuser interface controller. The user interface controller then presentsthe narrative explanation to the user.

A further embodiment involves a computer-implemented method forpresenting explanations for a tax calculation or tax operation andincludes a tax return preparation system, executed by at least oneprocessor of at least one computing device, receiving an electronicversion of a tax form of a tax authority, wherein the electronic versionsubstantially corresponds to the tax form, and modifying the electronicversion of the tax form. The electronic version of the tax form ismodified by integrating respective interface elements into theelectronic rendering such that respective interface elements areassociated with respective fields the electronic rendering. While informs mode, the tax return preparation system presents the modifiedelectronic version of the tax form to a user of the tax preparationsystem, receives user input based on selection or activation of aninterface element, presents an explanation for the tax calculation ortax operation of the field of the modified electronic version of the taxform associated with the selected interface element in response to theuser input.

Yet other embodiments involve computerized systems for modifyingelectronic tax return forms and/or presenting an explanation for a taxcalculation or operation performed by a tax return preparation systemoperable in multiple presentation modes. One embodiment of a systemincludes a directed tax calculation graph, a tax calculation engine anda user interface controller. Tax calculations or operations areassociated with respective explanations in the tax calculation graph.The tax calculation engine is operable on the directed tax calculationgraph to perform a tax calculation. The user interface controller, whenoperating in forms mode of the multiple presentation modes, is operableor configured to present to the user an electronic version of a tax formof a tax authority that has been modified by inclusion of interfaceelements associated with respective fields of the electronic version ofthe tax form and to receive user input regarding selection of aninterface element to invoke presentation of an explanation regarding atax calculation or operation for the associated field, and in responseto the user input. The explanation engine is operable or configured todetermine a narrative explanation based at least in part upon the taxcalculation graph in response to data received from the user interfacecontroller and provide the narrative explanation to the user interfacecontroller, which is operable or configured to present the narrativeexplanation to the user in response to selection of the interfaceelement.

Embodiments are also electronic tax return documents that allow users toinitiate narrative explanations during, and independently of,preparation of an electronic tax return.

In a single or multiple embodiments, electronic versions of taxauthority forms are modified by changing fields thereof to includecertain emphasis or differentiation of fields for which explanations areavailable and for which explanations are not, e.g., by use ofpre-determined colors, attributes of a font of data within a field oridentifying a field, such as font type, font size, font color, bolding,italics, and underlining, or by adding a mouseover function that, forexample, involves a mouseover of the field or of a separate interfaceelement adjacent to the field.

In a single or multiple embodiments, a narrative explanation isgenerated or determined and presented in response to user selection ofan interface element associated with a field populated with acalculation result or data input by a user, by importation from anelectronic source, or from another source such as an electronic taxreturn.

In a single or multiple embodiments, a narrative explanation isdetermined and presented in response to user selection of an interfaceelement associated with (e.g., within or adjacent to) an unpopulatedfield. For example, electronic versions of tax forms may include a tableor chart, e.g., for the Affordable Care Act (ACA), which shows whichmonths a taxpayer had insurance (with an “X”) and which months thetaxpayer was without insurance (such field being “blank”). Thus,narrative explanations can be generated for fields that includenon-numerical data and fields populated with non-numerical indicators(e.g., Y/N or similar binary indicators), or not populated at all. Forexample, in connection with determinations regarding whether a user issubject to a penalty under ACA, a user may mouseover sections of a tableor chart with indicators of whether the taxpayer had insurance forcertain months.

Given the manner in which embodiments utilize a directed calculationgraph, embodiments are able to present the same narrative in response touser requests made through different modified electronic versions of taxforms that involve the same data or field. For example, a field for“gross income” may be included in various modified versions ofelectronic tax forms, and the same narrative explanation can bepresented when the user initiates an explanation from within thedifferent modified electronic forms.

In a single or multiple embodiments, the tax calculation graphsemantically describes data dependent tax operations comprisingfunctional nodes connected to input nodes by one of a plurality offunctions, wherein tax calculations or operations are associated withrespective explanations in the tax calculation graph. A narrativeexplanation or “gist' or segment thereof, can be determined by theexplanation engine recursively traversing at least a portion of the taxcalculation graph in response to receiving the selected field data fromthe user interface controller. Natural language processing can beapplied to segments, a result of which is presented to the user.

In a single or multiple embodiments, a narrative explanation can bedetermined in real-time or may be pre-determined. For example, anarrative explanation can be determined in response to initiation ofpresentation of a narrative explanation by selection of an interfaceelement such that the explanation engine recursively traverses adirected calculation graph on response to a user request, whereas inother embodiments, a directed calculation graph can be traversed atbefore a user request, or as runtime data is received or updated, suchthat when a user selects an interface element to initiate a narrativeexplanation, the pre-determined narrative explanation is provided inresponse.

In a single or multiple embodiments, a narrative explanation includes ahyperlink that can be selected by the user such that the user is thendirected to a source of the data and allow the user to change or deletethe data. For example, if an explanation indicates that a user does notqualify for a deduction due to an age of the user being 65, but uponseeing this, the user realizes this is an error and the user's ageshould have been entered as 64, the age in the explanation can be ahyperlink to the form or field in which age was input to allow the userto change age data from 65 to 64. Thus, embodiments provide for datamodification initiated from within a narrative explanation that waspresented in response to selection of an interface element within amodified electronic tax form.

In a single or multipole embodiments, given the manner in whichnarrative explanations are generated and displayed, e.g., with nestedhyperlinks to data entry fields and/or to present further and/or moredetailed explanations, the explanations that are presented in responseto various user inputs can be presented in a cascading tabbed orindented form, and can be collapsed or closed to a higher level, e.g.,root narrative explanation, in response to user input.

Given various aspects of embodiments and how embodiments may beimplemented, embodiments provide improvements to various technicalfields and aspects, utilization and/or efficiencies thereof includingimprovements to computerized tax return preparation systems, electronictax returns and documents and forms thereof, preparation of electronictax returns, understanding of electronic tax returns and tax laws,personalization of tax return preparation experiences, user interfaces,user engagement and interactions with tax preparation applications,which involve, for example, modification or transformation of staticelectronic versions of tax authority forms into active components withwhich the user can interact and that can be utilized during preparationof an electronic tax return or at different times and in differentapplications such as tax calculators. Moreover, given the modular natureof system embodiments in which tax logic based on completeness graphs isseparate from user interface controller functions and interview screens,in contrast to prior “hard-wired” approaches in which tax logic is anintegral part of or encoded within interview screens, the efficiency ofthe tax preparation software and computers executing same are improved,and such systems provide for more flexibility by being configurable invarious system and networked configurations, while allowing programmersto more easily adapt to changes in the ever-evolving tax code and tomore easily update tax preparation applications and modular componentsthereof

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates according to one embodiment how taxlegislation and tax rules are parsed and represented by a completenessgraph and a tax calculation graph.

FIG. 2 illustrates an example of a simplified version of a completenessgraph according to one embodiment related to a qualifying child forpurposes of determining deductions for federal income tax purposes.

FIG. 3 illustrates another illustration of a completeness graphaccording to one embodiment.

FIG. 4 illustrates a decision table based on or derived from thecompleteness graph of FIG. 3.

FIG. 5 illustrates another embodiment of a decision table thatincorporates statistical data.

FIG. 6A illustrates an example of a calculation graph according to oneembodiment.

FIG. 6B illustrates an example of a calculation graph that relates tothe determination and calculation of a shared responsibility penaltyunder the Affordable Care Act according to one embodiment.

FIG. 7 schematically illustrates a system for calculating taxes usingrules and calculations based on a declarative data structures accordingto one embodiment.

FIG. 8A illustrates a display of a computing device illustrating anarrative explanation according to one embodiment, FIG. 8B illustrates adisplay of a computing device illustrating a narrative explanationaccording to another embodiment, and FIG. 8C illustrates a display of acomputing device illustrating a narrative explanation according toanother embodiment.

FIG. 9 illustrates an explanation engine that is part of the system forcalculating taxes according to one embodiment. The explanation enginegenerates narrative explanations that can be displayed or otherwisepresented to users to explain one or more tax calculations or operationsthat are performed by the tax preparation software.

FIGS. 10A and 10B illustrate a display of a computing device along witha narrative explanation that was generated by the explanation engineaccording to one embodiment. The narrative explanation contains multiplephrases that are linked that can be selected to provide additionaldetailed explanations.

FIGS. 11A and 11B illustrate a display of a computing device along witha narrative explanation that was generated by the explanation engineaccording to one embodiment. The narrative explanation contains multiplephrases that are linked that can be selected to provide additionaldetailed explanations.

FIGS. 12A and 12B illustrate a display of a computing device along witha narrative explanation that was generated by the explanation engineaccording to one embodiment. The narrative explanation contains multiplephrases that are linked that can be selected to provide additionaldetailed explanations.

FIG. 13 illustrates an example of a screen presented to a user of a taxreturn preparation system operating in interview mode;

FIG. 14 illustrates an example of a tax form of a tax authority that canbe presented to a user of a tax return preparation system operating informs mode;

FIG. 15 illustrates how an electronic version of tax authority form maybe modified according to embodiments for use in indicating whichsections of an electronic form are associated with explanations;

FIG. 16 is a flow diagram of one embodiment for modifying an electronicversion of a tax authority form according to one embodiment;

FIG. 17 illustrates a modified electronic version of a tax authorityform and attributes of an interface element associated with a field andthat has been selected by a user during forms mode operation of the taxreturn preparation application.

FIG. 18A illustrates a screen generated in response to selection of aninterface element of a modified electronic version of a tax authorityform during forms mode and including an explanation and hyperlinks, andFIG. 18B illustrates a simplified example of a calculation graphincluding topics and explanations related to links shown in FIG. 18A

FIGS. 19A-D illustrate how embodiments may be utilized for simultaneouspresentation of an explanation, links and a table or other datastructure with elements that can be selected to invoke an explanation;

FIGS. 20A-B illustrate how a series of explanations and links,originating from selection of an interface element during forms mode,can be presented to the user in a cascading, indented manner and howexplanations and topics can be selectively collapsed;

FIG. 21 illustrates how an interface element may be utilize to generatethe same explanation when the same data populates fields of differentforms that are associated with respective interface elements that can beselected during forms mode operation;

FIG. 22 illustrates the implementation of tax preparation software onvarious computing devices according to one embodiment.

FIG. 23 illustrates generally the components of a computing device thatmay be utilized to execute the software for preparing a tax return andinvoking tax-related explanations based thereon according to oneembodiment.

DETAILED DESCRIPTION OF ILLUSTRATED EMBODIMENTS

Tax preparation is a time-consuming and laborious process. It isestimated that individuals and businesses spend around 6.1 billion hoursper year complying with the filing requirements of the Internal RevenueCode. Tax preparation software has been commercially available to assisttaxpayers in preparing their tax returns. Traditionally, a user haswalked through a set of rigidly defined user interface interview screensthat selectively ask questions that are relevant to a particular taxtopic or data field needed to calculate a taxpayer's tax liability.

In contrast to the rigidly defined user interface screens used in prioriterations of tax preparation software that runs on computing devices,embodiments operate on a new construct in which tax rules and thecalculations based thereon are established in declarativedata-structures, namely, one or more completeness graphs 12 and one ormore tax calculation graphs 14, and tax logic is separate from userinterface screens, whereas in known systems, tax logic is integratedinto or interview screens.

Completeness graphs 12 and tax calculation graphs 14 are data structuresin the form of trees having nodes and interconnecting arcs in which arcsare directed from one node to another. Completion graphs 12 identifywhen all conditions have been satisfied to complete a particular taxtopic or, collectively, produce a fileable tax return. The taxcalculation graph 14 semantically describes data depending taxoperations that perform a tax calculation or operation in accordancewith tax code or tax rules. Examples of these data structures may befound in U.S. patent application Ser. Nos. 14/097,057 and 14/448,886,both of which are incorporated by reference as if set forth fullyherein. Use of these data-structures permits the user experience to beloosely connected or even divorced from the tax calculation engine andthe data used in the tax calculations. Tax calculations are dynamicallycalculated based on tax data derived from sourced data, estimates, userinput, or even intermediate tax calculations that are then utilized foradditional tax calculations. A smart tax logic agent running on a set ofrules can review current run time data and evaluate missing data fieldsand propose suggested questions to be asked to a user to fill in missingblanks. This process can be continued until completeness of all taxtopics has occurred. An electronic return can then be prepared and filedwith respect to the relevant taxing jurisdictions.

With computer-implemented methods, explanations for tax calculations ortax operations performed by tax preparation software are generated. Theexplanations that are generated by the computer may be automaticallygenerated as data is input or otherwise loaded into the tax preparationsoftware. Explanations may also be generated or presented after arequest by a user. The explanations are in easy to understand and may bepresented in a narrative form. The explanations may be generated withvarying levels of complexity depending on the user type, product type,or user credentials. The explanations are generated based onexplanations associated with tax operations contained in the taxcalculation graphs.

Further, with embodiments provide for different ways to initiatepresentation of an explanation while the tax preparation application isoperating in forms mode, or in a mode in which an electronic version orrendering of a tax authority form is displayed. An electronic version ofa tax authority form is substantially similar to the tax authority formin terms of having the same or substantially similar layout, or look andfeel, content, and fields for inputs and calculations or results. Withembodiments, an electronic version of a tax authority form is modifiedwith one or more interface elements, and during operation in forms mode,an interface element of a modified electronic version can be selected inorder to initiate an explanation regarding an associated field, whichmay be a field for numerical data (e.g., an input or calculation), or afield for non-numerical data (e.g. whether a box is checked or whether afield is populated with specified non-numerical indicators, as well asfor fields that are empty or unpopulated.

Embodiments and aspects thereof are described in further detail withreference to FIGS. 1-23. System and methods for generating explanationsare described, and embodiments involving indicating which fields of anelectronic form presented in forms mode (versus interview mode) areassociated with explanations about the fields or data thereof aredescribed.

FIG. 1 illustrates graphically how tax legislation/tax rules 10 arebroken down into a completeness graph 12 and a tax calculation graph 14utilized in embodiments. In one aspect of the invention, tax legislationor rules 10 are parsed or broken into various topics. For example, theremay be nearly one hundred topics that need to be covered for completinga federal tax return. When one considers both federal and state taxreturns, there can be well over one hundred tax topics that need to becovered. When tax legislation or tax rules 10 are broken into varioustopics or sub-topics, in one embodiment of the invention, eachparticular topic (e.g., topics A, B) may each have their own dedicatedcompleteness graph 12A, 12B and their own dedicated tax calculationgraph 14A, 14B as seen in FIG. 1.

Note that in FIG. 1, the completeness graph 12 and the tax calculationgraph 14 are interdependent as illustrated by dashed line 16. That is tosay, some elements contained within the completeness graph 12 are neededto perform actual tax calculations using the tax calculation graph 14.Likewise, aspects within the tax calculation graph 14 may be needed aspart of the completion graph 12. Taken collectively, the completenessgraph 12 and the tax calculation graph 14 represent data structures thatcapture all the conditions necessary to complete the computations thatare required to complete a tax return that can be filed. Thecompleteness graph 12, for example, determines when all conditions havebeen satisfied such that a “fileable” tax return can be prepared withthe existing data. The completeness graph 12 is used to determine, forexample, that no additional data input is needed to prepare andultimately print or file a tax return. The completeness graph 12 is usedto determine when a particular schema contains sufficient informationsuch a tax return can be prepared and filed. Individual combinations ofcompleteness graphs 12 and tax calculation graphs 14 that relate to oneor more topics can be used complete the computations required for somesub-calculation. In the context of a tax setting, for example, asub-selection of topical completeness graphs 12 and tax calculationgraphs 14 can be used for intermediate tax results such as AdjustedGross Income (AGI), Taxable Income (TI), itemized deductions, taxcredits, and the like.

The completeness graph 12 and the tax calculation graph 14 representdata structures that can be constructed in the form of tree. FIG. 2illustrates a completeness graph 12 in the form of a tree with nodes 20and arcs 22 representing a basic or general version of a completenessgraph 12 for the topic of determining, for example, whether a childqualifies as a dependent for federal income tax purposes. A morecomplete flow chart-based representation of questions related todetermining a “qualified child” may be found in U.S. patent applicationSer. No. 14/097,057, which is incorporated by reference herein. Eachnode 20 contains a condition that in this example is expressed as aBoolean expression that can be answered in the affirmative or negative.The arcs 22 that connect each node 20 illustrate the dependenciesbetween nodes 20. The combination of arcs 22 in the completeness graph12 illustrates the various pathways to completion. A single arc 22 orcombination of arcs 22 that result in a determination of “Done”represent a pathway to completion. As seen in FIG. 2, there are severalpathways to completion. For example, one pathway to completion is wherean affirmative (True) answer is given to the question of whether you ora spouse can be claimed on someone else's tax return. If such acondition is true, your child is not a qualifying dependent becauseunder IRS rules you cannot claim any dependents if someone else canclaim you as a dependent. In another example, if you had a child andthat child did not live with you for more than six months of the year,then your child is not a qualifying dependent. Again, this is a separateIRS requirement for a qualified dependent.

As one can imagine given the complexities and nuances of the tax code,many tax topics may contain completeness graphs 12 that have many nodeswith a large number of pathways to completion. However, by many branchesor lines within the completeness graph 12 can be ignored, for example,when certain questions internal to the completeness graph 12 areanswered that eliminate other nodes 20 and arcs 22 within thecompleteness graph 12. The dependent logic expressed by the completenessgraph 12 allows one to minimize subsequent questions based on answersgiven to prior questions. This allows a minimum question set that can begenerated that can be presented to a user as explained herein.

FIG. 3 illustrates another example of a completeness graph 12 thatincludes a beginning node 20 a (Node A), intermediate nodes 20 b-g(Nodes B-G) and a termination node 20 y (Node “Yes” or “Done”). Each ofthe beginning node 20 a and intermediate nodes 20 a-g represents aquestion. Inter-node connections or arcs 22 represent response options.In the illustrated embodiment, each inter-node connection 22 representsan answer or response option in binary form (Y/N), for instance, aresponse to a Boolean expression. It will be understood, however, thatembodiments are not so limited, and that a binary response form isprovided as a non-limiting example. In the illustrated example, certainnodes, such as nodes A, B and E, have two response options 22, whereasother nodes, such as nodes D, G and F, have one response option 22.

As explained herein, the directed graph or completion graph 12 that isillustrated in FIG. 3 can be traversed through all possible paths fromthe start node 20 a to the termination node 20 y. By navigating variouspaths through the completion graph 12 in a recursive manner one candetermine each path from the beginning node 20 a to the termination node20 y. The completion graph 12 along with the pathways to completionthrough the graph can be converted into a different data structure orformat. In the illustrated embodiment shown in FIG. 4, this differentdata structure or format is in the form of a decision table 30. In theillustrated example, the decision table 30 includes rows 32 (five rows32 a-e are illustrated) based on the paths through the completion graph12. In the illustrated embodiment, the columns 34 a-g of the completiongraph represent expressions for each of the questions (represented asnodes A-G in FIG. 3) and answers derived from completion paths throughthe completion graph 12 and column 34 h indicates a conclusion,determination, result or goal 34 h concerning a tax topic or situation,e.g., “Yes—your child is a qualifying child” or “No—your child is not aqualifying child.”

Referring to FIG. 4, each row 32 of the decision table 30 represents atax rule. The decision table 30, for example, may be associated with afederal tax rule or a state tax rule. In some instances, for example, astate tax rule may include the same decision table 30 as the federal taxrule. The decision table 30 can be used, as explained herein, to drive apersonalized interview process for the user of tax preparation software.In particular, the decision table 30 is used to select a question orquestions to present to a user during an interview process. In thisparticular example, in the context of the completion graph from FIG. 3converted into the decision table 30 of FIG. 4, if the first questionpresented to the user during an interview process is question “A” andthe user answers “Yes” rows 32 c-e may be eliminated from considerationgiven that no pathway to completion is possible. The tax rule associatedwith these columns cannot be satisfied given the input of “Yes” inquestion “A.” Note that those cell entries denoted by “?” representthose answers to a particular question in a node that is irrelevant tothe particular pathway to completion. Thus, for example, referring torow 34 a, when an answer to QA is “Y” and a path is completed throughthe completion graph 12 by answering Question C as “N” then answers tothe other questions in Nodes B and D-F are “?” since they are not neededto be answered given that particular path.

After in initial question has been presented and rows are eliminated asa result of the selection, next, a collection of candidate questionsfrom the remaining available rows 32 a and 32 b is determined. From thisuniverse of candidate questions from the remaining rows, a candidatequestion is selected. In this case, the candidate questions arequestions QC and QG in columns 34 c, 34 g, respectively. One of thesequestions is selected and the process repeats until either the goal 34 his reached or there is an empty candidate list.

FIG. 5 illustrates another embodiment of a decision table 30. In thisembodiment, the decision table 30 includes additional statistical data36 associated with each rule (e.g., rules R1-R6). For example, thestatistical data 36 may represent a percentage or the like in which aparticular demographic or category of user(s) satisfies this particularpath to completion. The statistical data 36 may be mined from existingor current year tax filings. The statistical data 36 may be obtainedfrom a proprietary source of data such as tax filing data owned byIntuit, Inc. The statistical data 36 may be third party data that can bepurchased or leased for use. For example, the statistical data 36 may beobtained from a government taxing authority or the like (e.g., IRS). Inone aspect, the statistical data 36 does not necessarily relatespecifically to the individual or individuals preparing the particulartax return. For example, the statistical data 36 may be obtained basedon a number of tax filers which is then classified one or moreclassifications. For example, statistical data 36 can be organized withrespect to age, type of tax filing (e.g., joint, separate, marriedfiling separately), income range (gross, AGI, or TI), deduction type,geographic location, and the like).

FIG. 5 illustrates two such columns 38 a, 38 b in the decision table 30that contain statistical data 36 in the form of percentages. Forexample, column 38 a (STAT1) may contain a percentage value thatindicates taxpayers under the age of thirty-five where Rule1 issatisfied. Column 38 b (STAT2) may contain a percentage value thatindicates taxpayers over the age of thirty-five where Rule1 issatisfied. Any number of additional columns 38 could be added to thedecision table 30 and the statistics do not have to relate to an agethreshold or grouping. The statistical data 36 may be used, as explainedin more detail below, by the tax preparation software 100 to determinewhich of the candidate questions (QA-QG) should be asked to a taxpayer.The statistical data 36 may be compared to one or more known taxpayerdata fields (e.g., age, income level, tax filing status, geographiclocation, or the like) such that the question that is presented to theuser is most likely to lead to a path to completion. Candidate questionsmay also be excluded or grouped together and then presented to the userto efficiently minimize tax interview questions during the dataacquisition process. For example, questions that are likely to beanswered in the negative can be grouped together and presented to theuser in a grouping and asked in the negative—for example, “we thinkthese question do not apply to you, please confirm that this iscorrect.” This enables the elimination of many pathways to completionthat can optimize additional data requests of the taxpayer. Predictivemodels based on the statistical data 36 may be used to determinecandidate questions.

FIG. 6A illustrates one example of a tax calculation graph 14. The taxcalculation graph 14 semantically describes data dependent taxoperations that used perform a tax calculation in accordance with thetax code or tax rules 10. The tax calculation graph 14 in FIG. 6A is asimplified view of data dependent tax operations that are used todetermine the taxes Due (taxDue) based on various sources of income,deductions, exemptions, and credits. The tax calculation graph 14 is atype of directed graph and, in most situations relevant to taxcalculations, is a directed acyclic graph that encodes the datadependencies amongst tax concepts or topics.

In FIG. 6A, various nodes 24 are leaf or input nodes. Examples of leafnodes 24 in this particular example include data obtained from W-2forms, data obtained from 1099-INT forms, data obtained from otherinvestment income (INV), filing status, and number of dependents.Typically, though not exclusively, leaf nodes 24 are populated with userinputs. That is to say the user taxpayer will enter this informationfrom a user interface as described herein. In other embodiments,however, the leaf nodes 24 may be populated with information that isautomatically obtained by the tax preparation software 100. For example,in some embodiments, tax documents may be imaged or scanned withrelevant data being automatically extracted using Object CharacterRecognition (OCR) techniques. In other embodiments, prior tax returnsmay be used by the tax preparation software 100 to extract information(e.g., name, potential dependents, address, and social security number)which can then be used to populate the leaf nodes 24. Online resourcessuch as financial services websites or other user-specific websites canbe crawled and scanned to scrape or otherwise download tax relatedinformation that can be automatically populated into leaf nodes 24.Additional third party information sources such as credit bureaus,government databases, and the like can also be used by the taxpreparation software 100 to obtain information that can then bepopulated in to respective leaf nodes 24.

In still other embodiments, values for leaf nodes 24 may be derived orotherwise calculated. For example, while the number of dependents may bemanually entered by a taxpayer, those dependent may not all be“qualifying” dependents for tax purposes. In such instances, the actualnumber of “qualified” dependents may be derived or calculated by the taxpreparation software 100. In still other embodiments, values for leafnodes 24 may be estimated as described herein.

Still other internal nodes referred to as functional nodes 26semantically represent a tax concept and may be calculated or otherwisedetermined using a function 28. The functional node 26 and theassociated function 28 define a particular tax operation 29. Forexample, as seen in FIG. 6A, operation 29 refers to total wage incomeand is the result of the accumulator function 28 summing all W-2 incomefrom leaf nodes 24. The functional node 26 may include a number in someinstances. In other instances, the functional node 26 may include aresponse to a Boolean expression such as “true” or “false.” Thefunctional nodes 26 may also be constant values in some instances. Someor all of these functional nodes 26 may be labelled as “tax concepts” or“tax topics.” The combination of a functional node 26 and its associatedfunction 28 relate to a specific tax operation as part of the tax topic.

Interconnected function nodes 26 containing data dependent tax conceptsor topics are associated with a discrete set of functions 28 that areused to capture domain specific patterns and semantic abstractions usedin the tax calculation. The discrete set of functions 28 that areassociated with any particular function node 26 are commonly reoccurringoperations for functions that are used throughout the process ofcalculating tax liability. For example, examples of such commonlyreoccurring functions 28 include copy, capping, thresholding (e.g.,above or below a fixed amount), accumulation or adding, look-upoperations (e.g., look-up tax tables), percentage of calculation, phaseout calculations, comparison calculations, exemptions, exclusions, andthe like.

In one embodiment, the entire set of functions 28 that is used tocompute or calculate a tax liability is stored within a data store 30which in some instances may be a database. The various functions 28 thatare used to semantically describe data connections between functionnodes 26 can be called upon by the tax preparation software 100 forperforming tax calculations. Utilizing these common functions 28 greatlyimproves the efficiency of the tax preparation software 100 can be usedby programmer to more easily track and follow the complex nature of theever-evolving tax code. The common functions 28 also enables easierupdating of the tax preparation software 100 because as tax laws andregulations change, fewer changes need to be made to the software codeas compared to prior hard-wired approaches.

Importantly, the tax calculation graph 14 and the associated functionnodes 26 and functions 28 can be tagged and later be used or called uponto intelligently explain to the user the reasoning behind why aparticular result was calculated or determined by the tax preparationsoftware 100 program as explained in more detail below. The functions 28can be de-coupled from a specific narrow definition and instead beassociated with one or more explanations. Examples of common functions28 found in tax legislation and tax rules include the concepts of “caps”or “exemptions” that are found in various portions of the tax code. Oneexample of a “cap” is the portion of the U.S. tax code that limits theability of a joint filer to deduct more than $3,000 of net capitallosses in any single tax year. There are many other instances of suchcaps. An example of an “exemption” is one that relates to earlydistributions from retirement plants. For most retirement plans, earlydistributions from qualified retirement plans prior to reaching the ageof fifty nine and one-half (59½) require a 10% penalty. This penalty canbe avoided, however, if an exemption applies such as the total andpermanent disability of the participant. Other exemptions also apply.Such exemptions are found throughout various aspects of the tax code andtax regulations.

In some embodiments, the function 28 may also include any number ofmathematical or other operations. Examples of functions 28 includesummation, subtraction, multiplication, division, and comparisons,greater of, lesser of, at least one of, calling of look-ups of tables orvalues from a database 30 or library as is illustrated in FIG. 6A. Itshould be understood that the function nodes 26 in the tax calculationgraph 14 may be shared in some instances. For example, AGI is areoccurring tax concept that occurs in many places in the tax code. AGIis used not only for the mathematical computation of taxes is also used,for example, to determine eligibility of certain tax deductions andcredits. The AGI function node 26 may be found in multiple locationswithin the tax calculation graph 14. Taxable income is another exampleof such a function node 26.

FIG. 6B illustrates an example of a tax calculation graph 14 that isused to calculate the amount of penalty under the Affordable Care Act(ACA). Under the ACA, taxpayers are required to have minimum essentialhealth coverage for each month of the year, qualify for an exemption, ormake a shared responsibility penalty payment when filing his or herfederal tax return. FIG. 6B illustrates a flowchart illustration of aprocess used to calculate a taxpayer's shared responsibility paymentunder the ACA (referred to herein as an ACA penalty). FIG. 6Billustrates, for example, various leaf nodes 24 a-24 j used as part ofthis calculation to determine the ACA penalty. Leaf nodes 24 a-24 f areused to calculate the modified adjusted gross income (ACA MAGI) as wellas the applicable ACA poverty level. One can see how the accumulatorfunction 28 a is used to generate the ACA MAGI in this example by addingforeign income 14 a, AGI 24 b, and tax exempt interest 24 c. Likewise, alook-up function 28 b can be used to determine the applicable ACApoverty level based on the taxpayer's zip code 24 d, filing status 24 e,and number of dependents 24 f. The ACA MAGI and the ACA poverty levelare then subject to a thresholding function 28 c to determine whetherthe ACA poverty level exemption applies. Under the ACA, if a taxpayercannot afford basic coverage because the minimum amount one must pay forthe premiums exceeds a percentage of household income (i.e., 8%), one isexempt from obtaining minimum essential coverage.

Still referring to FIG. 6B, a taxpayer may be exempt from therequirement to obtain minimum essential coverage by obtaining adifferent statutory exemption. These exemptions include: religiousconscience, health care sharing ministry, a member of Indian tribe,short coverage gap (less than 3 consecutive months), hardship,affordability (already mentioned above), incarceration, and not lawfullypresent. A true/false Boolean function 28 d may be used to determinewhether an Exemption Certificate Number (ECN) has been obtained from thetaxpayer certifying that one of the statutory exemptions has beensatisfied. Another threshold function 28 e is applied to determinewhether one of the statutory exemptions is satisfied (e.g.,affordability or others). If at least one of these statutory conditionsis met then the taxpayer is exempt from the ACA shared responsibilitypayment penalty.

As seen in FIG. 6B, if a taxpayer has obtained minimal essentialcoverage during the year, there is still the possibility that a penaltymay be owed because under the ACA, if there is a gap in coverage for acovered member of the family of more than three (3) months, at leastsome penalty amount is owed. Function 28 f (at least one condition true)is used to determine if there was minimum essential coverage during theyear for any period. Function 28 g (gap>3 months) is used to determinethe gap in coverage in order to gaps in coverage that exceed the 3 monthstatutory requirement. The gap in coverage penalty, however, may bepro-rated based on the length of the gap in coverage as indicated inFIG. 6B.

In the event there is a penalty, the ACA requires that the penalty bethe greater of a percentage of income, net of specified deductions, or aspecified penalty that is applied per individual or family. For example,for the 2015 year, the percentage is 2.0 percent and increases to 2.5percent in subsequent years. FIG. 6B illustrates the use of asubtraction function 28 g that utilizes the AGI node 24 b to arrive at ataxable income value. A look-up function 28 h is used to obtain theapplicable tax rate (e.g., 2.0% for 2015) and is used to calculate theincome-based ACA penalty.

In order to determine the non-income or “fixed” penalty, an accumulatorfunction 28 i is used to determine the penalty. In this example, thecalculation pertains to a family wherein the penalty includes a fixedamount for a child ($162.50 per child in 2015) and a fixed amount peradult ($325.00 per adult). Under the ACA, there is a maximum cap of thisfixed penalty. For example, in 2015, the maximum family penalty is $975.As seen in FIG. 6B, a cap function 28 j is used to determine the minimumcap. Another function 28 k that is referred to as “at least minimum cap”is used to determine the greater of the fixed penalty or theincome-based penalty. If the income-based penalty is higher than thefixed amount then that value is used, otherwise the fixed penalty amountis used. Still referring to FIG. 6B, another cap function 28 l is usedto determine whether the penalty has exceeded another cap that is partof the ACA law. Under the ACA, the overall penalty is capped at thenational average premium for a bronze level insurance plan. The capfunction 28 l is used to ensure that the calculated penalty (i.e., theincome based penalty) does not exceed this amount. After application ofthe cap function 28 l, the ACA penalty amount is determined.

As seen in FIG. 6B, there are a variety of different functions 28 thatare employed as part of the process used to calculate any applicablepenalty under the ACA. In some instances, a common function (e.g., capfunctions 28 j and 28 l) is found in multiple locations within the taxcalculation graph 14. It should be understood that the functions 28illustrated in FIG. 6B are illustrative as other functions may be usedbeyond those specifically illustrated in the drawings.

FIG. 7 schematically illustrates a system 40 for calculating taxes usingrules and calculations based on a declarative data structures accordingto one embodiment. The system 40 include a shared data store 42 thatcontains therein a schema 44 or canonical model representative to thedata fields utilized or otherwise required to complete a tax return. Theshared data store 42 may be a repository, file, or database that is usedto contain the tax-related data fields. The shared data store 42 isaccessible by a computing device 102, 103 as described herein (e.g.,FIG. 13). The shared data store 42 may be located on the computingdevice 102, 103 running the tax preparation software 100 or it may belocated remotely, for example, in cloud environment on another, remotelylocated computer. The schema 44 may include, for example, a schema basedon the Modernized e-File (MeF) system developed by the Internal RevenueService. The MeF is a web-based system that allows electronic filing oftax returns through the Internet. MeF uses extensible markup language(XML) format that is used when identifying, storing, and transmittingdata. For example, each line or data element on a tax return is given anXML name tag as well as every instance of supporting data. Taxpreparation software 100 uses XML schemas and business rules toelectronically prepare and transmit tax returns to tax reportingagencies. Transmitters use the Internet to transmit electronic taxreturn data to the IRS MeF system. The IRS validates the transmittedfiles against the XML schemas and Business Rules in the MeF schema 44.

The schema 44 may be a modified version of the MeF schema used by theIRS. For example, the schema 44 may be an extended or expanded versionof the MeF model established by government authorities that utilizesadditional fields. While the particular MeF schema 44 is discussedherein the invention is not so limited. There may be many differentschemas 44 depending on the different tax jurisdiction. For example,Country A may have a tax schema 44 that varies from Country B. Differentregions or states within a single country may even have differentschemas 44. The systems and methods described herein are not limited toa particular schema 44 implementation. The schema 44 may contain all thedata fields required to prepare and file a tax return with a governmenttaxing authority. This may include, for example, all fields required forany tax forms, schedules, and the like. Data may include text, numbers,and a response to a Boolean expression (e.g., True/False or Yes/No). Asexplained in more detail, the shared data store 42 may, at any one time,have a particular instance 46 of the MeF schema 44 stored therein at anyparticular time. For example, FIG. 7 illustrates several instances 46 ofthe MeF schema 44 (labeled as MeF1, MeF2, MeFN). These instances 46 maybe updated as additional data is input into the shared data store 42.

As seen in FIG. 7, the shared data store 42 may import data from one ormore data sources 48. A number of data sources 48 may be used to importor otherwise transfer tax related data to the shared data store 42. Thismay occur through a user interface control 80 as described herein or,alternatively, data importation may occur directly to the shared datastore 42 (not illustrated in FIG. 7). The tax related data may includepersonal identification data such as a name, address, or taxpayer ID.Tax data may also relate to, for example, details regarding a taxpayer'semployer(s) during a preceding tax year. This may include, employername, employer federal ID, dates of employment, and the like. Taxrelated day may include residential history data (e.g., location ofresidence(s) in tax reporting period (state, county, city, etc.) as wellas type of housing (e.g., rental unit or purchased home). Tax relatedinformation may also include dependent-related information such as thenumber of family members in a household including children. Tax relatedinformation may pertain to sources of income, including both earned andunearned income as well. Tax related information also includeinformation that pertains to tax deductions or tax credits. Tax relatedinformation may also pertain to medical insurance information. Forexample, under the new ACA many taxpayers may obtain health insurancethrough a state or federal marketplace. Such a marketplace may haveinformation stored or accessible that is used in connection withpreparing a tax return. Tax information related to premiums paid,coverage information, subsidy amounts (if any), and enrolled individualscan be automatically imported into the shared data store 42.

User input 48 a is also one type of data source 48. User input 48 a maytake a number of different forms. For example, user input 48 a may begenerated by a user using, for example, a input device such as keyboard,mouse, touchscreen display, voice input (e.g., voice to text feature),photograph or image, or the like to enter information manually into thetax preparation software 100. For example, as illustrated in FIG. 7,user interface manager 82 contains an import module 89 that may be usedto select what data sources 48 are automatically searched for taxrelated data. Import module 89 may be used as a permission manager thatincludes, for example, user account numbers and related passwords. TheUI control 80 enables what sources 48 of data are searched or otherwiseanalyzed for tax related data. For example, a user may select prior yeartax returns 48 b to be searched but not online resources 48 c. The taxdata may flow through the UI control 80 directly as illustrated in FIG.7 or, alternatively, the tax data may be routed directly to the shareddata store 42. The import module 89 may also present prompts orquestions to the user via a user interface presentation 84 generated bythe user interface manager 82. For example, a question or prompt may askthe user to confirm the accuracy of the data. For instance, the user maybe asked to click a button, graphic, icon, box or the like to confirmthe accuracy of the data prior to or after the data being directed tothe shared data store 42. Conversely, the interface manager 82 mayassume the accuracy of the data and ask the user to click a button,graphic, icon, box or the like for data that is not accurate. The usermay also be given the option of whether or not to import the data fromthe data sources 48.

User input 48 a may also include some form of automatic data gathering.For example, a user may scan or take a photographic image of a taxdocument (e.g., W-2 or 1099) that is then processed by the taxpreparation software 100 to extract relevant data fields that are thenautomatically transferred and stored within the data store 42. OCRtechniques along with pre-stored templates of tax reporting forms may becalled upon to extract relevant data from the scanned or photographicimages whereupon the data is then transferred to the shared data store42.

Another example of a data source 48 is a prior year tax return 48 b. Aprior year tax return 48 b that is stored electronically can be searchedand data is copied and transferred to the shared data store 42. Theprior year tax return 48 b may be in a proprietary format (e.g., .txf,.pdf) or an open source format. The prior year tax return 48 b may alsobe in a paper or hardcopy format that can be scanned or imaged wherebydata is extracted and transferred to the shared data store 42. Inanother embodiment, a prior year tax return 48 b may be obtained byaccessing a government database (e.g., IRS records).

An additional example of a data source 48 is an online resource 48 c. Anonline resource 48 c may include, for example, websites for thetaxpayer(s) that contain tax-related information. For example, financialservice providers such as banks, credit unions, brokerages, investmentadvisors typically provide online access for their customers to viewholdings, balances, transactions. Financial service providers alsotypically provide year-end tax documents to their customers such as, forinstance, 1099-INT (interest income), 1099-DIV (dividend income), 1099-B(brokerage proceeds), 1098 (mortgage interest) forms. The data containedon these tax forms may be captured and transferred electronically to theshared data store 42.

Of course, there are additional examples of online resources 48 c beyondfinancial service providers. For example, many taxpayers may have socialmedia or similar accounts. These include, by way of illustration and notlimitation, Facebook, Linked-In, Twitter, and the like. User's may postor store personal information on these properties that may have taximplications. For example, a user's Linked-In account may indicate thata person changed jobs during a tax year. Likewise, a posting on Facebookabout a new home may suggest that a person has purchased a home, movedto a new location, changed jobs; all of which may have possible taxramifications. This information is then acquired and transferred to theshared data store 42, which can be used to drive or shape the interviewprocess described herein. For instance, using the example above, aperson may be asked a question whether or not she changed jobs duringthe year (e.g., “It looks like you changed jobs during the past year, isthis correct?”). Additional follow-up questions can then be presented tothe user.

Still referring to FIG. 7, another data source 48 includes sources ofthird party information 48 d that may be accessed and retrieved. Forexample, credit reporting bureaus contain a rich source of data that mayimplicate one or more tax items. For example, credit reporting bureausmay show that a taxpayer has taken out a student loan or home mortgageloan that may be the source of possible tax deductions for the taxpayer.Other examples of sources of third party information 48 d includegovernment databases. For example, the state department of motorvehicles may contain information relevant to tax portion of vehicleregistration fees which can be deductible in some instances. Othergovernment databases that may be accessed include the IRS (e.g., IRS taxreturn transcripts), and state taxing authorities. Third party resources48 d may also include one of the state-based health insurance exchangesor the federal health insurance exchange (e.g., www.healthcare.gov).

Referring briefly to FIG. 22, the tax preparation software 100 includingthe system 40 of FIG. 7 is executed by the computing device 102, 103.Referring back to FIG. 7, the tax preparation software 100 includes atax calculation engine 50 that performs one or more tax calculations ortax operations based on the available data at any given instance withinthe schema 44 in the shared data store 42. The tax calculation engine 50may calculate a final tax due amount, a final refund amount, or one ormore intermediary calculations (e.g., taxable income, AGI, earnedincome, un-earned income, total deductions, total credits, alternativeminimum tax (AMT) and the like). The tax calculation engine 50 utilizesthe one or more calculation graphs 14 as described previously in thecontext of FIGS. 1, 6A, and 6B. In one embodiment, a series of differentcalculation graphs 14 are used for respective tax topics. Thesedifferent calculation graphs 14 may be glued together or otherwisecompiled as a composite calculation graph 14 to obtain an amount oftaxes due or a refund amount based on the information contained in theshared data store 42. The tax calculation engine 50 reads the mostcurrent or up to date information contained within the shared data store42 and then performs tax calculations. Updated tax calculation valuesare then written back to the shared data store 42. As the updated taxcalculation values are written back, new instances 46 of the canonicalmodel 46 are created. The tax calculations performed by the taxcalculation engine 50 may include the calculation of an overall taxliability or refund due. The tax calculations may also includeintermediate calculations used to determine an overall tax liability orrefund due (e.g., AGI calculation). Tax calculations include, forexample, the ACA penalty that is described in FIG. 6B as oneillustrative example.

While certain system configurations are described above, given themodular nature of system components, components may be incorporated intoa tax return preparation application or be executed as a distributedsystem on two or more different computing systems through respectivenetworks. Tax logic agent 60 determinations can be determined separatelyof UI controller 80 functions, which can be performed separately ofcalculation engine 50 processing, and one or more or all of which may bemanaged by respective independent computers through respective networkssuch that communications between components described herein may beperformed through respective networks between respective computingdevices. Thus, embodiments may provide for a flexible, modular anddistributed tax return preparation system, capable of different systemconfigurations, in which UI determinations and interview screenpresentment are independent of tax logic and tax calculations, and oneor more components may be remote relative to other components andcommunications are conducted through respective networks.

Still referring to FIG. 7, the system 40 includes a tax logic agent(TLA) 60. The TLA 60 operates in conjunction with the shared data store42 whereby updated tax data represented by instances 46 are read to theTLA 60. The TLA 60 contains run time data 62 that is read from theshared data store 42. The run time data 62 represents the instantiatedrepresentation of the canonical tax schema 44 at runtime. The TLA 60 maycontain therein a rule engine 64 that utilizes a fact cache to generateeither non-binding suggestions 66 for additional question(s) to presentto a user or “Done” instructions 68 which indicate that completeness hasoccurred and additional input is not needed. The rule engine 64 mayoperate in the form a Drools expert engine. Other declarative rulesengines 64 may be utilized and a Drools expert rule engine 64 isprovided as one example of how embodiments may be implemented. The TLA60 may be implemented as a dedicated module contained within or executedin connection with the tax preparation software 100.

As seen in FIG. 7, The TLA 60 uses the decision tables 30 to analyze therun time data 62 and determine whether a tax return is complete. Eachdecision table 30 created for each topic or sub-topic is scanned orotherwise analyzed to determine completeness for each particular topicor sub-topic. In the event that completeness has been determined withrespect to each decision table 30, then the rule engine 64 outputs a“done” instruction 68 to the UI control 80. If the rule engine 64 doesnot output a “done” instruction 68 that means there are one or moretopics or sub-topics that are not complete, which, as explained in moredetail below presents interview questions to a user for answer. The TLA60 identifies a decision table 30 corresponding to one of thenon-complete topics or sub-topics and, using the rule engine 64,identifies one or more non-binding suggestions 66 to present to the UIcontrol 80. The non-binding suggestions 66 may include a listing ofcompilation of one or more questions (e.g., Q1-Q5 as seen in FIG. 7)from the decision table 30. In some instances, the listing orcompilation of questions may be ranked in order by rank. The ranking orlisting may be weighted in order of importance, relevancy, confidencelevel, or the like. For example, a top ranked question may be a questionthat, based on the remaining rows (e.g., R1-R5) in a decision will mostlikely lead to a path to completion. As part of this ranking process,statistical information such as the STAT1, STAT2 percentages asillustrated in FIG. 5 may be used to augment or aid this rankingprocess. Questions may also be presented that are most likely toincrease the confidence level of the calculated tax liability or refundamount. In this regard, for example, those questions that resolve datafields associated with low confidence values may, in some embodiments,be ranked higher. Predictive modeling based on statistical data 36 usingany suitable data such as previously filed tax returns, demographicinformation, financial information and the like may be used as part ofthis ranking process.

The following pseudo code generally expresses how a rule engine 64functions utilizing a fact cache based on the runtime canonical data 62or the instantiated representation of the canonical tax schema 46 atruntime and generating non-binding suggestions 66 provided as an input aUI control 80. As described in U.S. application Ser. No. 14/097,057previously incorporated herein by reference, data such as requiredinputs can be stored to a fact cache so that the needed inputs can berecalled at a later time, and to determine what is already known aboutvariables, factors or requirements of various rules.:

-   Rule engine (64)/Tax Logic Agent (TLA) (60)    -   // initialization process    -   Load_Tax_Knowledge_Base;-   Create_Fact_Cache; While (new_data_from_application)    -   Insert_data_into_fact_cache;    -   collection=Execute_Tax_Rules; // collection is all the fired        rules and corresponding conditions    -   suggestions=Generate_suggestions (collection);    -   send_to_application(suggestions);

The TLA 60 may also receive or otherwise incorporate information from astatistical/life knowledge module 70. The statistical/life knowledgemodule 70 contains statistical or probabilistic data related to thetaxpayer. For example, statistical/life knowledge module 70 may indicatethat taxpayers residing within a particular zip code are more likely tobe homeowners than renters. The TLA 60 may use this knowledge to weightparticular topics or questions related to these topics. For example, inthe example given above, questions about home mortgage interest may bepromoted or otherwise given a higher weight. The statistical knowledgemay apply in other ways as well. For example, tax forms often require ataxpayer to list his or her profession. These professions may beassociated with transactions that may affect tax liability. Forinstance, a taxpayer may list his or her occupation as “teacher.” Thestatistic/life knowledge module 70 may contain data that shows that alarge percentage of teachers have retirement accounts and in particular403(b) retirement accounts. This information may then be used by the TLA60 when generating its suggestions 66. For example, rather than askinggenerically about retirement accounts, the suggestion 66 can be tailoreddirectly to a question about 403(b) retirement accounts.

The data that is contained within the statistic/life knowledge module 70may be obtained by analyzing aggregate tax data of a large body oftaxpayers. For example, entities having access to tax filings may beable to mine their own proprietary data to establish connections andlinks between various taxpayer characteristics and tax topics. Thisinformation may be contained in a database or other repository that isaccessed by the statistic/life knowledge module 70. This information maybe periodically refreshed or updated to reflect the most up-to-daterelationships. Generally, the data contained in the statistic/lifeknowledge module 70 is not specific to a particular tax payer but israther generalized to characteristics shared across a number of taxpayers although in other embodiments, the data may be more specific toan individual taxpayer.

Still referring to FIG. 7, the UI controller 80 encompasses a userinterface manager 82 and a user interface presentation or user interface84. The user interface presentation 84 is controlled by the interfacemanager 82 may manifest itself, typically, on a visual screen or display104 that is presented on a computing device 102, 103 (seen, for example,in FIG. 13). The computing device 102 may include the display of acomputer, laptop, tablet, mobile phone (e.g., Smartphone), or the like.Different user interface presentations 84 may be invoked using a UIgenerator 85 depending, for example, on the type of display 104 that isutilized by the computing device. For example, an interview screen withmany questions or a significant amount of text may be appropriate for acomputer, laptop, or tablet screen but such as presentation may beinappropriate for a mobile computing device such as a mobile phone orSmartphone. In this regard, different interface presentations 84 may beprepared for different types of computing devices 102. The nature of theinterface presentation 84 may not only be tied to a particular computingdevice 102 but different users may be given different interfacepresentations 84. For example, a taxpayer that is over the age of 60 maybe presented with an interview screen that has larger text or differentvisual cues than a younger user.

The user interface manager 82, as explained previously, receivesnon-binding suggestions from the TLA 60. The non-binding suggestions mayinclude a single question or multiple questions that are suggested to bedisplayed to the taxpayer via the user interface presentation 84. Theuser interface manager 82, in one aspect of the invention, contains asuggestion resolution element 88, is responsible for resolving of how torespond to the incoming non-binding suggestions 66. For this purpose,the suggestion resolution element 88 may be programmed or configuredinternally. Alternatively, the suggestion resolution element 88 mayaccess external interaction configuration files. Additional detailsregarding configuration files and their use may be found in U.S. patentapplication Ser. No. 14/206,834, which is incorporated by referenceherein.

Configuration files specify whether, when and/or how non-bindingsuggestions are processed. For example, a configuration file may specifya particular priority or sequence of processing non-binding suggestions66 such as now or immediate, in the current user interface presentation84 (e.g., interview screen), in the next user interface presentation 84,in a subsequent user interface presentation 84, in a random sequence(e.g., as determined by a random number or sequence generator). Asanother example, this may involve classifying non-binding suggestions asbeing ignored. A configuration file may also specify content (e.g.,text) of the user interface presentation 84 that is to be generatedbased at least in part upon a non-binding suggestion 66.

A user interface presentation 84 may be pre-programmed interview screensthat can be selected and provided to the generator element 85 forproviding the resulting user interface presentation 84 or content orsequence of user interface presentations 84 to the user. User interfacepresentations 84 may also include interview screen templates, which areblank or partially completed interview screens that can be utilized bythe generation element 85 to construct a final user interfacepresentation 84 on-the-fly during runtime.

As seen in FIG. 7, the UI controller 80 interfaces with the shared datastore 42 such that data that is entered by a user in response to theuser interface presentation 84 can then be transferred or copied to theshared data store 42. The new or updated data is then reflected in theupdated instantiated representation of the schema 44. Typically,although not exclusively, in response to a user interface presentation84 that is generated (e.g., interview screen), a user inputs data to thetax preparation software 100 using an input device that is associatedwith the computing device 102, 103. For example, a taxpayer may use amouse, finger tap, keyboard, stylus, voice entry, or the like to respondto questions. The taxpayer may also be asked not only to respond toquestions but also to include dollar amounts, check or un-check boxes,select one or more options from a pull down menu, select radio buttons,or the like. Free form text entry may also be request of the taxpayer.For example, with regard to donated goods, the taxpayer may be promptedto explain what the donated good are and describe the same in sufficientdetail to satisfy requirements set by a particular taxing authority.

Still referring to FIG. 7, in one aspect, the TLA 60 outputs a currenttax result 65 which can be reflected on a display 104 of a computingdevice 102, 103. For example, the current tax result 65 may illustrate atax due amount or a refund amount. The current tax results 65 may alsoillustrate various other intermediate calculations or operations used tocalculate tax liability. For example, AGI or TI may be illustrated.Deductions (either itemized or standard) may be listed along withpersonal exemptions. Penalty or tax credits may also be displayed on thecomputing device 102, 103. This information may be displayedcontemporaneously with other information, such as user inputinformation, or user interview questions or prompts or even narrativeexplanations 116 as explained herein.

The TLA 60 also outputs a tax data that is used to generate the actualtax return (either electronic return or paper return). The return itselfcan be prepared by the TLA 60 or at the direction of the TLA 60 using,for example, the services engine 60 that is configured to perform anumber of tasks or services for the taxpayer. For example, the servicesengine 90 can include a printing option 92. The printing option 92 maybe used to print a copy of a tax return, tax return data, summaries oftax data, reports, tax forms and schedules, and the like. The servicesengine 90 may also electronically file 94 or e-file a tax return with atax authority (e.g., federal or state tax authority). Whether a paper orelectronic return is filed, data from the shared data store 42 requiredfor particular tax forms, schedules, and the like is transferred overinto the desired format. With respect to e-filed tax returns, the taxreturn may be filed using the MeF web-based system that allowselectronic filing of tax returns through the Internet. Of course, othere-filing systems may also be used other than those that rely on the MeFstandard. The services engine 90 may also make one or morerecommendations 96 based on the run-time data 62 contained in the TLA60. For instance, the services engine 90 may identify that a taxpayerhas incurred penalties for underpayment of estimates taxes and mayrecommend to the taxpayer to increase his or her withholdings orestimated tax payments for the following tax year. As another example,the services engine 90 may find that a person did not contribute to aretirement plan and may recommend 96 that a taxpayer open an IndividualRetirement Account (IRA) or look into contributions in anemployer-sponsored retirement plan. The services engine 90 may alsoinclude a calculator 98 that can be used to calculate variousintermediate calculations used as part of the overall tax calculationalgorithm. For example, the calculator 98 can isolate earned income,investment income, deductions, credits, and the like. The calculator 98can also be used to estimate tax liability based on certain changedassumptions (e.g., how would my taxes change if I was married and fileda joint return?). The calculator 98 may also be used to compare analyzedifferences between tax years.

By using calculation graphs 14 to drive tax calculations and taxoperations, the year-over-year calculation graphs 14 can be used toreadily identify differences and report the same to a user. Differencescan be found using commonly used graph isomorphism algorithms over thetwo respective calculation graphs 14.

Still referring to FIG. 7, the system includes an explanation engine 110that operates in connection with the tax preparation software 100 togenerate a narrative explanation from the one or more explanationsassociated with a particular tax operation 29 (illustrated in FIGS. 6Aand 6B). To generate the narrative explanation for a particular taxoperation 29, the explanation engine 110 extracts the stored function 28that is associated with the particular functional node 26. The storedfunction 28 is one function of a defined set and may be associated witha brief explanation. For example, a “cap” function may be associatedwith an explanation of “value exceeds cap.” This brief explanation canbe combined with a stored explanation or narrative that is associatedwith the particular functional node 26 within the calculation graph 14.For example, the functional node 26 paired with the stored “cap”function 28 gives a contextual tax explanation in that is more thanmerely “value exceeds cap.” For instance, a pre-stored narrativeassociated with the particular functional node 26 having to do with thechild tax credit within the calculation graph 14 may be a completestatement or sentence such as “You cannot claim a child tax creditbecause your income is too high.” In other embodiments, the pre-storednarrative may be only a few words or a sentence fragment. In the aboveexample, the pre-stored narrative may be “credit subject to income phaseout” or “AGI too high.” A particular functional node 26 and associatedfunction 28 may have multiple pre-stored narratives. The particularnarrative(s) that is/are associated with a particular functional node 26and associated function 28 may be stored in entries 112 in a data storeor database such as data store 42 of FIG. 7. For example, with referenceto FIG. 7, data store 42 contains the pre-stored narratives that may bemapped or otherwise tagged to particular functional nodes 26 andassociated functions 28 contained within the calculation graph(s) 14.The locations or addresses of the various functional nodes 26 and theassociated functions 28 can be obtained using the calculation graphs 14.

These stored entries 112 can be recalled or extracted by the explanationengine 110 and then displayed to a user on a display 104 of a computingdevice 102, 103. For example, explanation engine 110 may interface withthe UI control 80 in two-way communication such that a user may be askthe tax preparation software 100 why a particular tax calculation,operation, or decision has been made by the system 40. For instance, theuser may be presented with an on-screen link (FIGS. 10A, 10B, 11A, 11B,12A, and 12B illustrate a hyperlink 120), button, or the like that canbe selected by the user to explain to the user why a particular taxcalculation, operation, or decision was made by the tax preparationsoftware 100. For example, in the context of FIG. 6B described herein, auser may see an ACA penalty of $1,210.00 listed on the screen of thecomputing device 102, 103 while he or she is preparing the tax returnfor a prior year. FIGS. 8A-8C illustrate an example of such a screenshot. The taxpayer may be interested in why there such a penalty. As oneexample, the initial explanation provided to the user may be “you havean ACA penalty because you, your spouse, and your two child dependentsdid not have coverage during the 2014 calendar year and the penalty isbased on your income.” This explanation may be associated with, forexample, function node 26 and function 28 pair B in FIG. 6B. In someinstances, a user is able to further “drill down” with additionalquestions to gain additional explanatory detail. This additional levelof detailed explanations is possible by retracing the calculationgraph(s) 14 to identify a predecessor or upstream function node 26 andfunction 28. In the context of the example listed above, a user may notbe satisfied and may want additional explanation. In this instance, forexample, the word “income” may be highlighted or linked with ahyperlink. A user clicking on this would then be provided withadditional explanation on the detail regarding the ACA penalty. In thisexample, the user may be provided with “Under the ACA your penalty isthe greater of 1% of your taxable income or a fixed dollar amount basedon your family circumstances. In your situation, the 1% of taxableincome exceeded the fixed dollar amount.” This particular explanationmay be associated with the predecessor function node 26 and function 28pair A in FIG. 6B. Additional details may be provided by furtherretracing, in a backwards fashion, the calculation graph 14.

With reference to FIG. 7, the explanation engine 110 may alsoautomatically generate explanations that are then communicated to theuser interface manager 80. The automatically generated explanations maybe displayed on a display associated with the computing devices 102,103. In some embodiments, the explanations may be contemporaneouslydisplayed alongside other tax data and/or calculations. For example, asa user inputs his or her information into the tax preparation software100 and calculations are automatically updated, explanations maybeautomatically displayed to the user. These explanations maybe displayedin a side bar, window, panel, pop-up (e.g., mouse over), or the likethat can be followed by the user. The explanations may also be fully orpartially hidden from the user which can be selectively turned on or offas requested by the user.

In one aspect of the invention, the choice of what particularexplanation will be displayed to a user may vary. For example, differentexplanations associated with the same function node 26 and function 28pair may be selected by the explanation engine 110 for display to a userbased on the user's experience level. A basic user may be given ageneral or summary explanation while a user with more sophistication maybe given a more detailed explanation. A professional user such as a CPAor other tax specialist may be given even more detailed explanations.FIGS. 8A-8C illustrates three different explanations (116basic,116intermediate, 116detailed) that are displayed to different users thathave various degrees of explanation. FIG. 8A illustrates a basicexplanation 116basic. In this example, an explanation is provided by thetaxpayer owes an ACA penalty of $1,210. FIG. 8B illustrates a moredetailed explanation 116intermediate of this same penalty. In the FIG.8B example, the taxpayer is told additional reasons behind the penalty(i.e., required health insurance was not obtained for the entire taxyear). In FIG. 8C, an even more detailed explanation 116detailed isgiven which more closely tracks the actual function node 26 and function28 that makes up the calculation graph 14. Note that in FIG. 8C variousterms such as “minimum essential health insurance” which has a specificdefinition under U.S. tax code and regulations is linked so that theuser can drill into even more detail. Likewise, taxable income is linkedin this example, letting the user potentially drill even further intothe calculation of the ACA penalty. While three such explanations 116are illustrated in the context of FIGS. 8A-8C, additional levels ofsimplicity/complexity for the explanation can be used.

In some embodiments, the different levels of explanation may be tied toproduct types or codes. These may be associated with, for example, SKUproduct codes. For example, a free edition of the tax preparationsoftware 100 may little or no explanations. In a more advanced edition(e.g., “Deluxe edition”), additional explanation is provided. Still moreexplanation may be provided in the more advanced editions of the taxpreparation software 100 (e.g., “Premier edition”). Version of the taxpreparation software 100 that are developed for accountants and CPAs mayprovide even more explanation.

In still other embodiments a user may be able to “unlock” additional ormore detailed explanations by upgrading to a higher edition of taxpreparation software 100. Alternatively, a user may unlock additional ormore detailed explanations in an a la carte manner for payment of anadditional fee. Such a fee can be paid through the tax preparationsoftware 100 itself using known methods of payment.

FIG. 9 illustrates additional details of the explanation engine 110according to an embodiment of the invention. In this embodiment, theexplanation engine 110 includes a natural language generator 114 thatconverts fragments, expressions or partial declaratory statements intonatural language expressions that are better understood by users. Thenatural language expressions may or may not be complete sentences butthey provide additional contextual language to the more formulaic, rawexplanations that may be tied directly to the explanation associatedwith a function node 26 and associated function 28. In the example ofFIG. 9, a brief explanation 115A extracted by the explanation engine 110which indicates that the child credit tax is zero due to phase out fromincome level is then subject to post-processing to convert the same intoa more understandable sentence that can be presented to the user. Inthis example, the user is provided with a natural language explanation115B that is more readily understood by users.

In one aspect of the invention, the natural language generator 114 mayrely on artificial intelligence or machine learning such that resultsmay be improved. For example, the explanation engine 110 may betriggered in response to a query that a user has typed into a free-formsearch box within the tax preparation software 100. The search that hasbeen input within the search box can then be processed by theexplanation engine 110 to determine what tax operation the user isinquiring about and then generate an explanatory response 115B.

FIGS. 10A, 10B, 11A, 11B, 12A, and 12B illustrate various embodiments ofhow a narrative explanation 116 may be displayed to a user on a display104 that is associated with a computing device 102, 103. FIGS. 10A and10B illustrate an exemplary screen shot of a display 104 that contains anarrative explanation 116 of a tax operation. In this particularexample, the tax operation pertains to the ACA shared responsibilitypenalty. As seen in the screen shot on display 104, the narrativeexplanation 116 may be presented along with additional tax data 118 thatgenerally relates to the specific tax operation. In this example, aseparate window 119 contains tax data 118 that relates to the taxoperation or topic that is germane to the narrative explanation 116 thatis being displayed. In this example, the taxpayer's zip code, AGI, taxexempt interest amount, exemption status, and insurance coverage statusare illustrated. It should be understood, however, that the specific taxdata 118 that is displayed may vary and many include more or lessinformation. In addition, the tax data 118 may be hidden from view inother embodiments. Likewise, the tax data 118 does not have to bedisplayed in a separate window 119 or other area on the display 104. Forexample, the tax data 118 could be on a ribbon or pop-up window.

As seen in FIG. 10A, the narrative explanation 116 includes a pluralityof words wherein several words or phrases are hyperlinked 120. In thisregard, the narrative explanation 116 is nested as one or more phrasescan be further expanded as is illustrated below. In this example, thenarrative explanation 116 tells the user why their shared responsibilitypenalty was $405. Specifically, the narrative explanation 116 explainsthat the shared responsibility penalty is $405 because there was adeficit in coverage that causes the ACA penalty to apply and there wasnot exemption. The narrative explanation 116 in this example includesthree phrases or words (“deficit in coverage”; “ACA Penalty”;“exemption”) that are hyperlinked 120. A user can select a hyperlink 120associated with one of these phrases or words where an additionalnarrative explanation 116′ is given as illustrated in FIG. 10B. FIG. 10Billustrates a view of the display 104 after a user has selected the“deficit in coverage” phrase in FIG. 10A. As seen in FIG. 10B, the useris presented with another narrative explanation 116′ explainingadditional details on why there was a deficit in coverage for thetaxpayer. Here, the user is told that a deficit in coverage was presentbecause the taxpayer did not enroll in a qualified insurance plan duringthe year. As seen in FIG. 10B, the hyperlink 120 for “deficit incoverage” may change appearances upon being selected. For example, thehyperlink 120 may go from a solid line to a dashed line to indicate thatit has been selected. Of course, other changes in appearance such assize, shape, highlighting can be used. Alternatively, the word or phraseof the hyperlink 120 may change appearances after being selected. Forexample, the word or phrase may change color, font size, or behighlighted to illustrate that the additional explanation 116′ pertainsto that specific word or phrase.

FIGS. 11A and 11B illustrate how the initial narrative explanation 116can be expanded further a plurality of times. In this example, theinitial narrative explanation 116 includes the phrase “ACA Penalty.” Auser may select the hyperlink 120 associated with this phrase thatbrings up another narrative explanation 116 a that provides additionalexplanatory detail on the ACA penalty. In this example, the additionalnarrative explanation 116 a itself includes several words or phraseswith hyperlinks 120. In this example, “calculated ACA penalty,” “minimumpenalty,” and “maximum penalty” are phrases that contain respectivehyperlinks 120 where even additional explanation can be found. As seenin FIG. 11B, for example, a user that selects the hyperlink 120 that isassociated with “calculated ACA penalty” returns another narrativeexplanation 116 b that explains how the amount of the calculated ACApenalty was derived. In this example, the penalty was calculated as 1%of taxable income.

FIGS. 12A and 12B illustrate the same initial narrative explanation 116as found in FIGS. 10A and 11A but with the hyperlinks 120 associatedwith the word “exemption” being selected. As seen in FIG. 12A, innarrative explanation 116 d, the user is given an explanation that noexemption applies because the taxpayer did not quality for any specifiedexemptions including the affordability exemption because the lowest costplan, itself a defined phrase that has a hyperlink), is less than 8% ofhousehold income. FIG. 12B illustrates the same display 104 after a userhas selected the hyperlink 120 that is associated with “lowest costplan” which then displays that the lowest cost plan offered by the Statein which the taxpayer resides is $250/month.

The narrative explanations 116 and their associated sub-explanations(e.g., 116′, 116 a, 116 b, 116 d, 116 e) are constructed as anexplanation tree with the root of the tree representing a particular taxtopic or tax operation. In the example of FIGS. 10A, 10B, 11A, 11B, 12A,and 12B, the tax topic pertains to the ACA penalty. The explanationtrees are readily constructed based on the function nodes 26 andassociated functions 28 contained within the calculation graph 14. Forexample, one is able to “drill down” into more detailed explanations bywalking up the directed graph that forms the calculation graph 14. Forexample, the initial explanation 116 that is displayed on the screen maybe associated with node D of the calculation graph 14 of FIG. 6B. Byselecting the ACA penalty hyperlink 120 as seen in FIGS. 11A and 11B, apredecessor node (e.g., node C) is used to generate the narrativeexplanation 116 a. Yet another predecessor node (node A) is used togenerate the narrative explanation of the calculated ACA penalty. Inthis manner, explanations can be presented to the user in a recursivemanner by reversely traversing the calculation graph 14. Conversely,walking progressively down the calculation graph 14 shows how one node26 affects other downstream nodes 26.

By encapsulating the tax code and regulations within calculation graphs14 results in much improved testability and maintainability of the taxpreparation software 100. Software bugs can be identified more easilywhen the calculation graphs 14 are used because such bugs can be tracedmore easily. In addition, updates to the calculation graphs 14 can bereadily performed when tax code or regulations change with less effort.

Further, the degree of granularity in the narrative explanations 116that are presented to the user can be controlled. As explained in thecontext of FIGS. 8A-8C different levels of details can be presented tothe user. This can be used to tailor the tax preparation software 100 toprovide scalable and personalized tax explanations to the user. Thenarrative explanations 116 can be quickly altered and updated as neededas well given that they are associated with the calculation graphs andare not hard coded throughout the underlying software code for the taxpreparation software 100.

Note that one can traverse the calculation graph 14 in any topologicallysorted order. This includes starting at a leaf or other input node andworking forward through the calculation graph 14. Alternatively, one canstart at the final or terminal node and work backwards. One can alsostart at in intermediate node and traverse through the directed graph inany order. By capturing the tax code and tax regulations in thecalculation graph, targeted calculations can be done on various taxtopics or sub-topics. For example, FIG. 6B demonstrates a very isolatedexample of this where a calculation graph 14 is used to determine theamount, if any, of the ACA shared responsibility penalty. Of course,there are many such calculation graphs 14 for the various topics orsub-topics that makeup the tax code. This has the added benefit thatvarious tax topics can be isolated and examined separately in detail andcan be used to explain intermediate operations and calculations that areused to generate a final tax liability or refund amount.

Further embodiments regarding how narrative explanations can beinitiated, generated and presented when the tax return preparationapplication is operating in forms mode, as distinguished from interviewmode, is described with reference to FIGS. 13-21.

FIG. 13 illustrates an example of a screen 120 presented by a tax returnpreparation application while operating in interview mode. As generallyillustrated in FIG. 13, the tax return preparation application specificinterview screen 120 is one of multiple interview screens that leads theuser through a series of questions 122 with response options 123 thatthe user can select or for which the user can enter data. The user cannavigate back to a prior interview screen via the “Back” button 124 oradvance to another interview screen or to a different topic with adifferent set of interview screens via the “Continue” button 125, untileventually the required data has been entered for preparation of acorresponding electronic form. Continuing with the example involvinghealth insurance, the interview screen 120 shown in FIG. 13 andpresented during interview mode operation (versus forms mode) includesquestions 122 and answer 123 options that are selectable by the user,and involving health insurance.

In contrast to the information presented and interaction involving thescreen 1300 presented in interview mode shown in FIG. 13, operating in“forms mode” involves a very different interface, presentation and userinteraction. In forms mode, the user is presented with an electronicversion 130 or rendering of a tax form as shown in FIG. 14. A user mayswitch between interview mode (using screens such as screens 120) andforms mode (using electronic versions 130 of forms) by selection of amenu item of the tax return preparation application, thus resulting inchanging the presentation mode between those shown in FIGS. 13 and 14.

The exemplary electronic form 130 shown in FIG. 14 is IRS Form 8965,which also involves the user's health insurance during the prior taxyear (and to which the interview screen 120 shown in FIG. 13 alsoapplies). Thus, in interview mode, the user is not presented with theoften cumbersome and complicated IRS tax form 130 as shown in FIG. 14that includes various data inputs 132, results or calculations 134 andother summaries, line item descriptions or instructions 136 andcalculations, and tables or graphs 138. Instead, in interview mode, theuser is guided through a series of interview screens, one example ofwhich is shown in FIG. 13, including questions that are intended to beeasier and less intimidating than completing an electronic form as shownin FIG. 14. More specifically, as shown in FIG. 14, in contrast to theexemplary interview screen 1300 presented in FIG. 13, the electronicversion 1400 of Form 8965 presented during forms mode includes amultitude of data input fields involving various multiplication andcomparison line item descriptions and associated fields for data inputsand calculation results, as well as a table for individuals identifiedin the electronic tax return and indicating whether a person hadinsurance for a specified month (Jan-Dec).

One embodiment of the invention involves modifying or transforming anelectronic version 1400 of a tax authority form as shown in FIG. 14 intoa different form and to have capabilities and to provide for differentusers interactions that are not provided in an electronic version 1400of a tax authority form. An example of an electronic form of a taxauthority form as modified 140 is shown in FIG. 15.

Referring to FIG. 15, with embodiments, the explanation engine 110receives or generates an electronic version 130 of the tax authorityform, and modifies 140 the electronic version 130 by incorporatinginterface elements 142 into the electronic version 130. The interfaceelements 142 are utilized to indicate fields of the modified electronicversion 140 of the tax authority form for which explanations or “gists”116 can be generated in response to a user's request during operation ofthe tax return preparation system in forms mode. In the embodimentillustrated in FIG. 15, the explanation engine 110 modifies 140 theelectronic version 130 of the tax form to include interface elements 142that are associated with respective fields 134.

According to embodiments, an interface element 142 may be or involve adistinguishing color, which identifies fields 134 for which anexplanation 100 can be presented such that when the interface element142 is selected, e.g., by the user clicking on an interface element 142or by a mouse over function, an explanation 100 regarding the data 143in the field 134 is presented to the user in response to the user input.For example, fields 134 for which explanations 110 are available and canbe identified by interface elements 142 in the form of coloring thosefields 134 “green” whereas other fields 134 for which explanations 110are not available can remain uncolored or in their original color, or ina color that indicates that no explanation is available, such as “red.”In the illustrated embodiment, certain fields 134 are modified by colorwhereas others are not. Further, in the illustrated embodiments, fields134 that are modified by color include fields 134 that are populatedwith input data 143 (“i” indicating “input” data) such as data input byuser, from prior tax return or imported from an electronic source andfields 134 that are populated with a calculation result 143 r (“r”indicating “result” data).

FIG. 15 also illustrates how certain fields 134 that are not involved incalculations, and that do not involve numerical data, may also bemodified by an interface element 142 in the form of color to indicatethat an explanation 100 is available for those fields 134. For example,in the insurance table 138 including rows for a person's name andcolumns for months of the year (Jan-Dec), the table 138 includesindicators 142, e.g., an “X,” indicating when a certain person hadinsurance, and a field of the table 138 is blank when that person didnot have insurance. Other indicators 242, such as binary indicators, mayalso be utilized, such as “Y” and “N” indicators, for example Thus, inthis embodiment, color-based interface elements 242 may be used toindicate that populated and/or unpopulated fields 243 have anexplanation 100 that can be presented to the user, and for populatedfields, such fields 243 may include numerical data and different typesof non-numerical data or indicators.

An electronic version 130 of a tax document may also be modified 140with interface elements 142 in the form of a differentiating fontattribute. For example, rather than a color-based interface element 142as shown in FIG. 15, data 143 of fields 134, whether numerical ornon-numerical data, for which explanations 110 are available canpresented in a different font compared to data 143 of other fields 134for which an explanation 100 is not available. Other font attributes mayinclude font size, font color, or other distinguishing or emphasizingattributes such as underlining, bold, italics, or by adding an indicatorsuch as an asterisk. Such attributes may be applied to the data 143itself within a field 134 and/or for a line item description 136associated with a field 134.

An interface element 142 can be selected or triggered for presentationof an explanation 100 in different ways including, for example, by amouseover function applicable to a particular field 134 or based on auser clicking on an interface element within or adjacent to a field 134.For example, rather than clicking on a colored field in order toinitiate an explanation 100, a separate interface indicator 142 may bepositioned adjacent to a field 134 for which an explanation 100 isavailable and the adjacent interface element 142 can be selected by theuser. In another embodiment, the line item description 136 or portionthereof n is encoded as an interface element 142 and may be illustratedwith a distinguishing font feature such as font color, size or fonttype, or a combination thereof. Thus, according to one embodiment, aninterface element 142 is embodied within a field 134 of the modifiedelectronic version 140 of the tax document, whereas other embodimentsmay involve an adjacent interface element 142 or the line itemdescription 136 or potion thereof being encoded as an interfaceindicator 142 that can be selected to initiate an explanation 100, or acombination of two or more thereof. Thus, the interface element 142incorporated into and to modify an electronic version 140 of the taxdocument may be of or contained within a field 134 (e.g., a colorindicator within a field), to the data 143 itself, a separate interfaceelement 142 associated with or adjacent to an explainable field 134, ora line item description 136 or portion thereof. Moreover, embodimentscan provide an option to the user to activate and deactivate interfaceelements 142 that indicate that an explanation 100 is available, e.g.,if the modified electronic version 140 appears visually cluttered withtoo many interface elements 142 indicative of explanations 110. Thus,while it will be understood that different types of interface elements142 may be utilized as explanation 100 indicators, reference is made tointerface elements or indicators 142 in the form of color-coded fields134 to indicate that an explanation 100 for that data or topic isavailable for presentation.

Thus, referring to FIG. 16 and with further reference to FIG. 17, at152, during operation in forms mode, user interface controller 80presents a screen 140 including an electronic version of tax form asmodified with added interface elements 142 (e.g., a field 134 beingshown as including a color-based interface element 142 as describedabove with reference to FIG. 15, and which is also illustrated in FIG.17). At 154, user interface controller 80 receives user input throughforms mode screen 140 that selects or activates an interface element 142to invoke tax calculation or operation explanation 100 for associatedfield 134, and at 156, user interface controller 80 communicates withexplanation engine 110 regarding the requested interface element 142.

For example, as shown in FIG. 17, in response to user input datareceived from user interface controller 80, explanation engine may readmeta data table 160 associated with the selected field 143/selectedinteract element 142. The meta data table 160 may or may not bedisplayed to user or may be displayed in response to a request. In theillustrated embodiment, the metadata table 160 specifies variousattributes about the corresponding field 134 including theidentification 171 of the field 134 that has been selected and for whichan explanation 100 is to be presented (FieldName: Line 14 . . . ), anindication 172 whether an explanation 100 is available for the field134, i.e., whether an interface element 142 has been applied to thefield 134 (IsExplanable: True), and various other attributes and rules173 concerning data 142 in the field 143 such as whether the data 143 inthe field 142 can be edited or overridden, and the source of the data,e.g., whether the data 143 was computed or imported. In the illustratedembodiment, the selected field 134/interface element 142 is indicatedwith a different shading or color to indicate that the field has beenselected.

With continuing reference to FIG. 16, at 158, explanation engine 110generates or determines a narrative explanation 100 based at least inpart upon the tax calculation graph 14 from a location or node in thetax calculation graph 14 identified or referenced by the interfaceelement data 142 and/or in the meta data table 160. Thus, there is apointer or reference to a specified portion of a calculation graph 14from which a narrative explanation 100 will be determined.

With continuing reference to FIG. 16 and with further reference to FIG.18A, in response to the user selecting interface element 142 or Line 14of Form 8965, the explanation engine 110 accesses calculation graph 14and goes to the identified location thereof in order to determineexplanation 100 or explanation segments determined by traversing thecalculation graph 14. At 160, the explanation engine 110 provide thedetermined explanation 100 to the user interface controller 80 which, at162, generates a screen 180 that includes an explanation 100 a(“Unfortunately our health care penalty is $327”) together with a firstgroup 181 a of referenced links 182 a-c that can be selected by the userfor further explanations 100 related to the explanation 100 a regardingthe health care penalty being $327.

In the illustrated embodiment, the links 182 a-c (generally, 182) arefor different questions the user may have regarding the explanation 100a such as “Why do I have a penalty?” 182 a, “What would qualify me for atotal exemption from the health care penalty?” 182 b and “How was $327[In line 14 of FIG. 17] determined?” 182 c.

FIG. 18B generally illustrates a simplified example of a calculationgraph 14 related to the modified electronic version of the tax form 1500and that may be used by explanation engine 110 to determine furtherexplanations 100 in response to selection of links 182. A link 182 a forthe first question in the first group 181 a may point or refer to afirst node from which the calculation graph traversal begins and/or aterminating node that defines a traversal path or traversal direction,link 182 b for a second question of the first group 181 a may point tothe same or other node and/or a termination node from that defines adifferent traversal path or direction, and so on. Thus, for eachquestion, certain portions of the calculation graph 14 are traversed andassociated explanations or explanation segments 110 (illustrated inparentheses in FIG. 18B) to formulate an explanation 100, as describedabove.

For example, in response to selection of link 182 a for the question“Why do I have a penalty?” the explanation engine 110 may traverse aleft portion 14 a of the calculation graph 14 beginning with“PenaltyIfApplicable” and proceeding to “Penalty/Applies” due to“DeficitInCoverage.” In response to selection of link 182 b for thequestion “What would qualify me for a total exemption from the healthcare penalty?” the explanation engine 110 may traverse a right portion14 c of the calculation graph 14 concerning exemption and exemptionreasons, and in response to selection of the link 182 c for the question“How was $327 determined?” the explanation engine 110 may traverse amiddle portion 14 b of the calculation graph 14. Analysis or traversalof the calculation graph 14 may be performed by the explanation engine110 in response to receiving data from the UI controller 80. Accordingto another embodiment, the explanation engine 110 performs respectivetraversals of the calculation graph 14 and stores resulting explanations100 in shared data store 42 or other data store such that when anexplanation 100 is to be presented, a previously determined explanation100 can be retrieved from a data store 42. In this embodiment,calculation graph 14 traversals and explanation 100 determinations canbe repeated periodically or as runtime data 46 is updated. Further, asexplained above, natural language processing may be utilized to generatea clearer narrative of the explanation 100 before the explanation ispresented to the user by the user interface controller 80.

FIGS. 19A-F illustrate one embodiment in which a user has selected link182 a for the question “Why do I have a penalty” and in response,explanation engine 110 formulates a further explanation 100 b regardingthe penalty being caused by a gap in coverage. Further, in theillustrated embodiment, the explanation engine 110 may pull table 138(as shown in FIG. 15) or generate a data structure 190 based thereon andthe associated table 138 data and integrate that into a screen withexplanations 100 a, 100 b as shown in FIG. 19A to supplement theexplanation so that the explanation is better understood and to providefurther interaction options for the user.

For example, in the illustrated embodiment, the user has selected thelink 18 sb for the quest “Why do I have a penalty” and in addition topresenting explanation 100 b based on calculation graph 14 (e.g., asshown in FIG. 18B), the explanation 100 is presented together with tableor data structure 138/190 (generally, table 190) showing when a taxpayerand spouse had coverage (indicated by “check”) 191 and when the taxpayerand spouse did not have coverage (indicated by “X”) 192, and whencoverage gaps were permitted given the particular extensions provided bythe law for that year (indicated by “*”) 193.

Referring to FIG. 19B, the table 138/190 itself may embody an interfaceelement 142 such that when a user mouses over a particular field, e.g.,for “Taxpayer” and “January” cells as illustrated, the explanationengine 110 may generate a response or explanation 195 a that is based onthe data that has been entered into corresponding cell of the table 190.In the illustrated example, the explanation provided 195 is the taxpayerwas “Exempt since you got coverage in May.”

Thus, in addition to incorporating a table 190 into an explanation pagebased on calculation graph 14 traversal, other explanations 195 may begenerated. These other explanations may also be based on the calculationgraph 14 and presented to supplement the provided calculation graph 14based explanations 100 a, 100 b. In another embodiment, explanations 195may be pre-determined and encoded and retrieved in response to certaindata being entered, rather than being based on calculation graph 14traversal. Thus, certain embodiments may generate explanations 100/195in different ways.

Further, while such screens and explanations as shown in FIGS. 18A,19A-B (and other figures including 19C-20B) are presented in a modeother than “forms mode,” the initial explanation 100 a is invoked fromuser interaction with an interface element 142 of the modified versionof the electronic form 1500 while in forms mode, and furtherexplanations 100/195 as shown in FIGS. 19A-B and other figures, may bepresented after the system has transitioned away from forms mode.

Referring to FIG. 19C, and continuing with the above example shown inFIGS. 19A-B, a separate, more detailed explanation 100 c may bepresented in response to selection of a particular table 190 cell entry,such as clicking on the cell for the month of January for taxpayer, orselecting a group of table 190 cells. Clicking a cell of table 190 issimilar to clicking a link 182 of the group of links 181 a, and suchexplanations are designated by “100” whereas explanations displayed inconjunction with table 190 are designated by “195.”

FIG. 19C-D further illustrates how a user can navigate cells of table190 indicating whether or not the taxpayer or spouse had healthinsurance and the resulting explanations 195 b-c/100 c-d that arepresented. In the illustrated example, as shown in FIG. 19C, the usermouses over the coverage cell for Taxyper in May, with the resultingexplanation 195 b of “Exempt since you got coverage by May” and a moredetailed explanation 100 c below which may be invoked, for example, bythe user clicking on that cell rather than mousing over the cell.Referring to FIG. 19D, as yet another example, when the user mouses overthe table for Taxpayer coverage in November, the resulting explanation195 c is “Penalty due . . . ” and a more detailed explanation 100 dbelow provides further details why a penalty is due as a result ofhaving a gap in insurance coverage for 2 or more months. FIG. 19D alsoillustrates a second group 181 b of links (including one link 182 d),which may also be selected for further information/drilling down to moredetails regarding why a penalty is due.

While FIGS. 19A-D illustrate an example in which three links 182 a-c areprovided and that can be selected by a user for presentation of anexplanation 100/195, it will be understood that the explanations 100/195can be presented directly without requiring the user to select a link182 or that other numbers of links 182 for other questions may bepresented, and that the manner in which embodiments are implemented maydepend on the number of possible answers or explanations 100 availablewhich, in turn, is based on how a calculation graph 14 related to thefield 134 associated a selected interface element 142 is structured.Accordingly, it will be understood that FIGS. 19A-D are provided forpurposes of illustration and explanation, not limitation.

Referring to FIGS. 20A-D, when screens such as those shown in FIGS.19A-D are displayed, the user may request to drill down for a moredetailed explanation 100. These requests are communicated by the UIcontroller 80 to the explanation engine 110, which performs furthertraversal of the tax calculation graph 14 for additional explanations100 and for generation of additional links 182. As the user continues toselect links 182 to drill further down for more details, additionalgroups of links 181 or explanations 100 are presented in a cascading,indented manner as the drill down occurs as shown in FIGS. 20A-D. Forexample, selecting link 182 b of the first group 181 results in anexplanation 100 e and a third group 181 c of links 182 e-g, and if theuser selects link 182 f of the third group 181 c, the user can thendrill down for a more detailed explanation 100 f with additional drilldown options with links 182 h-i of the fourth group 181 d, and so on asthe user drills down to further details by selecting links 182 andresulting respective explanations 100 e due to respective additionaltraversals of calculation graph 14. If the user wishes to collapse theseries of displayed links 182 or groups 181, the user may select one ofthe “−” symbols 2000 a-f to close or collapse the underlying links 182and explanations 100 from that point while maintaining the explanations100 and links 182 above that point.

According to one embodiment, as described above and with reference toFIGS. 19A-20B, hyperlinks 182 are links to other hyperlinks 182 and/orexplanations 100. According to another embodiment, a link 182 or aportion of an explanation 100 may serve as a link to direct the user toa field 134 that is the source of the data 143 that is the subject ofthe link 182 or explanation 100 to allow the user to view, change ordelete the data, which then allows the user to view the resultingchanges in other tax data and how links 182 and/or explanations 100change as a result of the changed data 143. For example, an explanation100 regarding whether the taxpayer qualifies for certain deduction basedon an age of the taxpayer, e.g., over 65. The “65” portion of theexplanation 100 may be a link 182 which, when selected by the user,directs the user to the field 134 that is the source of the “65 yearsold” data 143. Thus, while certain examples of embodiments are providedabove in terms of explanations 100 with links 182 to furtherexplanations 100 (and/or additional links), other embodiments mayinvolve a portion of an explanation 100 serving as a link that points orrefers to a field 134 that is the source of the data 143 resulting inthe explanation 100 and to allow the user to view, change or delete thedata 143.

With continuing reference to FIG. 15 and with further reference to FIG.21, the same explanation 100 (or explanations 100/links 182) may beinvoked for presentation from different sections of different modifiedelectronic versions of tax forms. For example, FIG. 15 shows a modifiedversion 140 of an electronic version of Form 8965 that includes aninterface element 142 such as a color indicator that an explanation 100can be invoked for various fields 134, including the field 134 populatedwith data 143 of $100,000, for Line 7 (Enter your household income).FIG. 21 shows a modified version 140 of an electronic version of adifferent tax authority form, namely, Form 8962. The electronic versionof this other form is also modified to include an interface element 142,such as a color indicator, that an explanation 100 can be invoked forvarious fields 134, including the field 134 that is populated with data143 of $100,000 for Line 3 (Household Income). Thus, in the exampleshown in FIGS. 15 and 21, both modified versions of the differentelectronic forms involve a field 143 for household income such that thesame explanation 100/links 182 are presented to the user when the userselects the interface element 142 associated with the household incomefields (both of which hare populated with the same data of $100,000 inthe illustrated example).

Referring to system diagrams 22-23, a user initiates the tax preparationsoftware 100 on a computing device 102, 103 as seen, for example, inFIG. 22. The tax preparation software 100 may reside on the actualcomputing device 102 that the user interfaces with or, alternatively,the tax preparation software 100 may reside on a remote computing device103 such as a server or the like as illustrated. In such an instances,the computing device 102 that is utilized by the user or tax payercommunicates via the remote computing device 103 using an application105 contained on the computing device 102. The tax preparation software100 may also be run using conventional Internet browser software.Communication between the computing device 102 and the remote computingdevice 103 may occur over a wide area network such as the Internet.Communication may also occur over a private communication network (e.g.,mobile phone network).

A user initiating the tax preparation software 100, as explained hereinmay import tax related information form one or more data sources 48. Taxdata may also be input manually with user input 48 a. The taxcalculation engine 50 computes one or more tax calculations dynamicallybased on the then available data at any given instance within the schema44 in the shared data store 42. In some instances, estimates or educatedguesses may be made for missing data. Details regarding how suchestimates or educated guesses are done maybe found in U.S. patentapplication Ser. No. 14/448,986 which is incorporated by reference as ifset forth fully herein. As the tax preparation software 100 iscalculating or otherwise performing tax operations, the explanationengine 110 is executing or made available to execute and provide to theuser one or more narrative explanations via an interview screen 107regarding calculations or operations being performed as referenced byparticular functional nodes 26 and functions 28 contained within thecalculation graph 14. As noted herein, in some instances, the narrativeexplanations are provided automatically to the UI control 80. In otherinstances, explanations are provided by the explanation engine 110 uponrequest of a user. For example, a user may request explanations on anas-needed basis by interfacing with the tax preparation software 100.

FIG. 23 generally illustrates components of a computing device 102, 103that may be utilized to execute the software for modifying electronicversions of tax authority forms and providing interface elements forinvoking explanations during forms mode operation of a tax returnpreparation application 100. The components of the computing device 102,103 include a memory 300, program instructions 302, a processor orcontroller 304 to execute program instructions 302, a network orcommunications interface 306, e.g., for communications with a network orinterconnect 308 between such components. The computing device 102, 103may include a server, a personal computer, laptop, tablet, mobile phone,or other portable electronic device. The memory 300 may be or includeone or more of cache, RAM, ROM, SRAM, DRAM, RDRAM, EEPROM and othertypes of volatile or non-volatile memory capable of storing data. Theprocessor unit 304 may be or include multiple processors, a singlethreaded processor, a multi-threaded processor, a multi-core processor,or other type of processor capable of processing data. Depending on theparticular system component (e.g., whether the component is a computeror a hand held mobile communications device), the interconnect 308 mayinclude a system bus, LDT, PCI, ISA, or other types of buses, and thecommunications or network interface may, for example, be an Ethernetinterface, a Frame Relay interface, or other interface. The interface306 may be configured to enable a system component to communicate withother system components across a network which may be a wireless orvarious other networks. It should be noted that one or more componentsof the computing device 102, 103 may be located remotely and accessedvia a network. Accordingly, the system configuration illustrated in FIG.23 is provided to generally illustrate how embodiments may be configuredand implemented.

Method embodiments may also be embodied in, or readable from, acomputer-readable medium or carrier, e.g., one or more of the fixedand/or removable data storage data devices and/or data communicationsdevices connected to a computer. Carriers may be, for example, magneticstorage medium, optical storage medium and magneto-optical storagemedium. Examples of carriers include, but are not limited to, a floppydiskette, a memory stick or a flash drive, CD-R, CD-RW, CD-ROM, DVD-R,DVD-RW, or other carrier now known or later developed capable of storingdata. The processor 304 performs steps or executes program instructions302 within memory 300 and/or embodied on the carrier to implement methodembodiments.

Embodiments, however, are not so limited and implementation ofembodiments may vary depending on the platform utilized. Accordingly,embodiments are intended to exemplify alternatives, modifications, andequivalents that may fall within the scope of the claims.

For example, while certain embodiments have been described in thecontext of preparation of an electronic tax return, embodiments may alsobe utilized independently of a tax return such as in connection with atax calculator or a calculator for one or more tax topics or electronicversions of tax forms and documents.

Additionally, where methods and steps described above indicate certainevents occurring in certain order, those of ordinary skill in the arthaving the benefit of this disclosure would recognize that the orderingof certain steps may be modified and that such modifications are inaccordance with the variations of the invention. Additionally, certainof the steps may be performed concurrently in a parallel process as wellas performed sequentially. Thus, the methods shown in various flowdiagrams are not intended to be limited to a particular sequentialorder, unless otherwise stated or required.

What is claimed is:
 1. A computer-implemented method, comprising:reading, by a calculation engine of a computerized tax returnpreparation application operable in multiple presentation modescomprising computer-executable instructions executed by a computingdevice, from a shared data store of the computerized tax returnpreparation application, runtime data of an electronic tax return beingprepared by a user of the computerized tax return preparationapplication; populating, by the calculation engine, a directed graphstructure of the computerized tax return preparation application, thedirected graph structure semantically describing data dependent taxoperations and comprising leaf nodes populated with specific runtimedata, function nodes associated with input nodes, functions, and resultnodes, wherein pre-determined explanations are associated with thefunction nodes and functions, inputs to a function comprise runtime dataof associated leaf nodes, and a result node is populated with acalculation result generated by execution of the function, constructing,by an explanation engine of the computerized tax return preparationapplication and in communication with the calculation engine, anarrative explanation concerning the calculation result based at leastin part upon the explanation engine traversing at least a portion of thedirected graph structure and determining an explanation associated withthe traversed function nodes and functions; performing a user interfacecontroller process including presenting, to the user, an electronicversion of a tax form of a tax authority that has been modified byinclusion of interface elements associated with fields of the electronicversion of the tax form, and receiving, through the interview screen,user input regarding selection of an interface element to invokepresentation of at least one of the explanations associated withtraversed function nodes and functions related to a tax calculation oroperation for the respective field; communicating, by the explanationengine, the narrative explanation to a user interface controller of thecomputerized tax return application that is also in communication withthe shared data store; and presenting, by the user interface controllerand through a display of the computing device and to the user, acomputer generated interface comprising the calculation result and thenarrative explanation associated with the calculation result.
 2. Themethod claim 1, wherein a field for which an explanation is available isdisplayed in a first pre-determined color on the electronic version ofthe tax form, and a second field for which an explanation is notavailable is displayed on the electronic version of the tax form in asecond pre-determined color that is different than the firstpre-determined color.
 3. The method of claim 1, wherein a field isdisplayed on the electronic version of the tax form with a mouse overfunction.
 4. The method of claim 1, wherein the narrative explanation isdetermined and presented in response to user selection of an interfaceelement associated with a field populated with a result of a calculationthat was performed by the tax return preparation application.
 5. Themethod of claim 1, wherein the narrative explanation is determined andpresented in response to user selection of an interface elementassociated with a field populated with data.
 6. The method of claim 1,wherein the narrative explanation is determined and presented inresponse to user selection of an interface element associated with anunpopulated field.
 7. The method of claim 1, the user interfacecontroller process further comprising: receiving, through the interviewscreen, a user request requesting change of presentation mode from formsmode to interview mode; and in response to the user request, changingthe presentation from forms mode to interview mode such that themodified version of the electronic version of the tax form is no longerdisplayed to the user.
 8. The method of claim 1, wherein a userinterface element is associated with a field of a modified electronicversion of a first tax form and a field of a modified electronic versionof a second tax form such that when in forms mode, the same explanationbeing provided in response to user selection of the interface element inthe modified electronic version of the first tax form and in response touser selection of the interface element in the modified electronicversion of second tax form.
 9. The method of claim 1, the graphstructure semantically describing data dependent tax operationscomprising functional nodes connected to input nodes by one of aplurality of functions, and tax calculations or operations areassociated with explanations in the graph structure.
 10. The method ofclaim 1, determining the explanation including recursively traversing atleast a portion of the graph structure in response to receiving theselected field data from the user interface controller process.
 11. Themethod of claim 1, constructing further comprises: recursivelytraversing at least a portion of the graph structure to determinemultiple explanation segments, executing a natural language processingalgorithm on the narrative explanation segments, and generating, by thenatural language processing algorithm, the narrative explanation forpresentation to the user.
 12. The method of claim 1, further comprising:recursively traversing various paths within the tax calculation graph todetermine the narrative explanations; storing the explanations to a datastore referenced by data of fields of the modified electronic version ofthe electronic tax form; and in response to receiving the user input,looking up a narrative explanation associated with the selected field.13. The method of claim 1, wherein the narrative explanation isdisplayed together with a numerical tax calculation.
 14. The method ofclaim 1, further comprising presenting a hyperlink to a source of thedata in the field associated with the interface element.
 15. The methodof claim 1, after presenting the narrative explanation to the user,further comprising: receiving further user input requesting to drilldown into a more detailed narrative explanation than the narrativeexplanation provided; and in response to the further user input,presenting at least one additional narrative explanation.
 16. The methodof claim 15, wherein presenting the at least one additional narrativeexplanation further comprises: communicating the request to drill downto the explanation engine; recursively traversing the graph structure todetermine additional narrative explanations; and communicating the atleast one additional narrative explanation to the user interfacecontroller for presentation to the user.
 17. The method of claim 15,wherein multiple narrative explanations based on traversing of the graphstructure are presented to the user and can be collapsed to a rootexplanation in response to user input.
 18. The method of claim 1,wherein modifying the electronic version of the tax form comprisesmodifying a static electronic version of the tax form into an activeelectronic version of the tax form with which the user can interact andthat is operable to present an explanation.
 19. A computing system,operable in multiple presentation modes, comprising: a shared data storeof a computerized tax return preparation application configured to storeruntime data of an electronic tax return; a user interface controller ofthe computerized tax return preparation application that is incommunication with the shared data store and comprisescomputer-executable instructions executable by a processor of acomputing device, the user interface controller, while operating in aforms mode of the multiple presentation modes, being configured togenerate user interface screens presentable to a user of thecomputerized tax return preparation application through a display of thecomputing device and to present to the user an electronic version of atax form of a tax authority that has been modified by inclusion ofinterface elements associated with fields of the electronic version ofthe tax form; and a directed graph structure of the computerized taxreturn preparation application associated with runtime data of theelectronic tax return, the directed graph structure semanticallydescribing data dependent tax operations and comprising leaf nodes thatare populated with specific runtime data, function nodes associated withinput nodes, functions, and result nodes, wherein inputs to a functionof the directed graph structure comprise data of associated leaf nodes,a result node comprises a calculation result generated by execution ofthe function, and pre-determined explanations are associated withfunction nodes and functions; a calculation engine of the computerizedtax return preparation application, the calculation engine beingconfigured to read, from the shared data store, runtime data of theelectronic tax return being prepared by a user of the computerized taxreturn preparation application, populate leaf nodes with the runtimedata, provide data of leaf nodes as inputs to a function of the directedgraph structure, execute the function to generate a calculation result,and populate a result node with the calculation result; and anexplanation engine of the computerized tax return preparationapplication configured to construct a narrative explanation concerningthe calculation result based at least in part upon traversing at least aportion of the directed graph structure, and communicate the narrativeexplanation to the user interface controller; and the user interfacecontroller being further configured to present, through the display, acomputer-generated interface comprising the calculation result and thenarrative explanation.
 20. The system of claim 19, wherein theexplanation engine comprises a natural language generator operable bythe processor to transform a pre-determined explanation into thenarrative explanation using natural language.